java ee jaas_java-ee – Tomcat-Jaas – 如何檢索主題?

i knew that and it works, but I need to retrieve subject to get also roleprincipal

不幸的是,它在Java EE中的工作方式不同. JAAS主題只是一個“主要包”,其中哪些代表用戶/調用者主體和/或角色主體根本不是標準化的.每個其他容器在這里做不同的事情. Javadoc for Tomcat’s JAASRealm描述了這一點并解釋了Tomcat特定約定(強調我的):

The JAAS Specification describes the result of a successful login as a

javax.security.auth.Subject instance, which can contain zero or more

java.security.Principal objects in the return value of the

Subject.getPrincipals() method. However, it provides no guidance on

how to distinguish Principals that describe the individual user (and

are thus appropriate to return as the value of

request.getUserPrincipal() in a web application) from the Principal(s)

that describe the authorized roles for this user. To maintain as much

independence as possible from the underlying LoginMethod

implementation executed by JAAS, the following policy is implemented

by this Realm: […]

除此之外,從Java EE環境中,您甚至很少能夠訪問JAAS主題,甚至通常不會通過供應商特定的方法. JAAS遠不是您認為的通用標準,特別是當它涉及Java EE時.

您可以以可移植方式訪問的唯一內容是調用者主體和與之關聯的角色,但即使這些內容也不一定是您的JAAS登錄模塊構造的確切調用者主體.

例如,JBoss AS使用自己的類復制此主體幾次.因此,如果您的JAAS模塊將kaz.zak.FooPrincipal存儲到用戶/調用者主體的Subject中,則HttpServletRequest#getUserPrincipal()可能會返回org.jboss.security.SimplePrincipal.唯一保證的是該實例上的getName()將返回相同的字符串.

有關此主題的更多背景知識:

最后一個來源基本上用不同的措辭說同樣的事情;

Although it is possible to use JAAS within Tomcat as an authentication

mechanism (JAASRealm), the flexibility of the JAAS framework is lost

once the user is authenticated. This is because the principals are

used to denote the concepts of “user” and “role”, and are no longer

available in the security context in which the webapp is executed. The

result of the authentication is available only through

request.getRemoteUser() and request.isUserInRole().

This reduces the JAAS framework for authorization purposes to a simple user/role system that loses its connection with the Java Security Policy.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533360.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533360.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533360.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java jive歌詞_Java Jive_Manhattan Transfer with Phil Collins_高音質在線試聽_Java Jive歌詞|歌曲下載_酷狗音樂...

Manhattan Transfer with Phil Collins - Java Jive[id:$00000000][ar:曼哈頓行者爵士][ti:Java Jive (LP Version)][by:][hash:99bf26cac4ad13e15925a56eb724027f][al:][sign:][qq:][total:0][offset:0][00:00.05]The Manhattan Transfer - Java Jive[00:10.57]I …

java 3_Java 3 (Java的數據類型)

Java的數據類型主要內容:1Java數據類型的分類2.8種基本數據類型3.理解引用類型的特點一、什么是數據類型?計算機語言將數據按性質進行分類,每一類稱為一種數據類型;數據類型定義了數據的性質、取值范圍、存儲方式、對數據所能進行…

java快捷鍵 --_Java中的快捷方式“或分配”(| =)運算符

如果是關于可讀性,我就有了將測試數據與測試邏輯分離的概念。代碼示例:// declare dataDataType [] dataToTest new DataType[] {defaultStock,defaultWholesale,defaultRetail,defaultDelivery}// define logicboolean checkIfAnyNegative(DataType []…

tcp網絡通信教程 java_基于java TCP網絡通信的實例詳解

JAVA中設計網絡編程模式的主要有TCP和UDP兩種,TCP是屬于即時通信,UDP是通過數據包來進行通信,UDP當中就會牽扯到數據的解析和傳送。在安全性能方面,TCP要略勝一籌,通信過程中不容易出現數據丟失的現象,有一…

java博客論壇設計報告_javaweb課程設計報告個人博客網站的實現(Java).doc

javaweb課程設計報告個人博客網站的實現(Java)項目名稱: 個人博客網站的實現(Java) 學生姓名:學 號:班 級:指導教師:2014年12月23日目錄1 緒論11.1系統應用意義11.2主要設計任務11.3開發及運行環境11.3.1 JSP的基礎——…

java replace stringbuilder_java.lang.StringBuilder.replace()方法實例

全屏java.lang.StringBuilder.replace()方法按照這個順序,在指定的字符串的子字符串替換字符。子串開始在指定start的 索引,并延伸到該字符 end - 1,或如果序列的末端不存在這樣的字符。聲明以下是java.lang.StringBuilder.replace()方法的聲…

中小學課java_java畢業設計_springboot框架的中小學排課與實現

這是一個基于java的畢業設計項目,畢設課題為springboot框架的中小學排課與實現, 是一個采用b/s結構的javaweb項目, 開發工具eclipsei/eclipse, 項目框架jspspringbootmybatis, 中小學排課與實現采用mysql進行數據存儲, 并基于mybatis進行了orm實體關系映射, 該中小學排課與實現…

java 文件設置為只讀文件系統_Java如何設置文件為只讀?

在java編程中,如何設置文件為只讀?此示例演示如何使用File類的file.setReadOnly()和file.canWrite()方法設置文件為只讀模式。package com.yiibai;import java.io.File;public class ReadOnlyFile {public static void main(String[] args) {File file …

wordcount linux java_linux下在eclipse上運行hadoop自帶例子wordcount

啟動eclipse:打開windows->open perspective->other->map/reduce 可以看到map/reduce開發視圖。設置Hadoop location.打開windows->show view->other-> map/reduce Locations視圖,在點擊大象后【new Hadoop location】彈出的對話框(Ge…

php java執行linux_java_java執行Linux命令的方法,本文實例講述了java執行Linux命 - phpStudy...

java執行Linux命令的方法本文實例講述了java執行Linux命令的方法。分享給大家供大家參考。具體實現方法如下:public class StreamGobbler extends Thread {InputStream is;String type;public StreamGobbler(InputStream is, String type) {this.is is;this.type …

java怎么接收前端請求_前端json post 請求 后端怎么接收

前端提交POST /api/test HTTP/1.1Host: 192.168.135.69:81Connection: keep-aliveContent-Length: 18Origin: http://192.168.135.69:81User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15…

minimum在java中的意思_Java Calendar getMinimum()用法及代碼示例

Calendar類中的getMinimum(int calndr_field)方法用于返回此Calendar實例的給定日歷字段(int calndr_field)的最小值。用法:public abstract int getMinimum(int calndr_field)參數:該方法采用一個參數calndr_field,該參數表示要操作的日歷字段。返回值&…

django mysql 一對多_請教,django中 如何向帶有外鍵(一對多和多對多)數據庫中批量插入數據?...

已自行解決,代碼如下:json格式:[{"標題": "小武","內容": "測試","類型":["情感","文學","散文"]"文章資源":[{"title":"小武.1…

安裝php no permision,php安裝過程中的No package ‘xxx’ found問題

php No package ‘oniguruma’ found今天安裝php7.4的時候遇到這樣的一個報錯,然后yum install oniguruma oniguruma-devel,重試安裝php,依然報錯,又編譯安裝oniguruma,重試安裝php,還是報錯,問…

php httpclient.class.php,php實現httpclient類示例

class httpClient {public $buffer null; // buffer 獲取返回的字符串public $referer null; // referer 設置 HTTP_REFERER 的網址public $response null; // response 服務器響應的 header 信息public $request null; // request 發送到服務器的 header 信息private $…

大學php老師,php高校教師總結計劃系統

通過使用本系統,可以規范工作流程,提高辦公效率,增強團隊協同工作能力,實現科學的公文處理、事物管理、會議安排和人力管理,量化運營資源,預防管理真空,降低運行成本。還可以實現便利的信息發布…

好用的php空間,推薦國內三個優質的免費PHP空間

1.億家免費國內PHP空間這是我見過最好的免費國內PHP空間了,這個BLOG就是由他的空間支撐的,所以你看到我這個空間的穩定,快速就代表著他們空間的優質了,推薦注冊地址:www.e9china.net這個先要在他們論壇上發帖子&#x…

java處理臟數據,Java程序的臟數據問題

臟數據(Out-of-date data),指過時的數據。假如在您的java程序中存在臟數據,將或多或少地給軟件系統帶來一些問題,如:無法實時地應用已經發生改變的配置,軟件系統出現一些莫名其妙的、難以重現的、后果嚴重的錯誤等等。…

制作自己的 Docker 容器

軟件開發最大的麻煩事之一,就是環境配置。用戶必須保證操作系統的設置,各種庫和組件的安裝,只有它們都正確,軟件才能運行。docker從根本上解決問題,軟件安裝的時候,把原始環境一模一樣地復制過來。 以 koa-…

notepad php源碼,GitHub - CharlesKiki/Web-Notepad: 這是一個仿制有道云筆記的原生PHP小玩具。...

What is this?一個仿制筆記的Web應用。但是重點在于“重構”的樂趣。特點簡言之,不使用框架就以原生的語言來開發一個網站,最大的好處就是最實現方法的理解會加深。但是不適用框架也意味著重復和冗余,這也導致了項目閱讀時的閱讀思路。設計稿…