日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jboss as7 下载_JBoss AS 7:定制登录模块

發布時間:2023/12/3 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jboss as7 下载_JBoss AS 7:定制登录模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

jboss as7 下載

JBoss AS 7很整潔,但是文檔仍然很缺乏(錯誤消息沒有那么有用)。 這篇文章總結了如何創建自己的兼容JavaEE的登錄模塊,以對部署在JBoss AS上的Web應用程序的用戶進行身份驗證。 提供了一個工作的基本用戶名密碼模塊。

為什么要使用Java EE標準認證? Java EE安全入門

Java EE規范的一部分是針對Web和EE應用程序的安全性,這使得在web.xml中指定聲明性約束成為可能(例如,“角色X是訪問URL“ / protected / *”的資源所必需的)”,并且以編程方式對其進行控制,即驗證用戶是否具有特定角色(請參見HttpServletRequest.isUserInRole )。

其工作方式如下:

  • 您在web.xml中聲明:
  • 登錄配置–主要是使用瀏覽器提示(基本)還是自定義登錄表單以及登錄領域的名稱
    • 定制表單對發布操作和字段(以j_開頭)使用“魔術”值,這些值由服務器攔截并處理
  • 應用程序中使用的角色(通??常是“用戶”或“管理員”之類的角色)
  • 訪問特定的URL模式需要什么角色(默認值:無)
  • 應用程序的某些部分是否需要HTTPS
  • 您通常通過將其名稱與配置中的可用登錄模塊之一(從簡單的基于文件的用戶列表到LDAP和Kerberos支持的模塊)相關聯,來告訴應用服務器如何針對該登錄領域對用戶進行身份驗證。 您很少需要創建自己的登錄模塊,這是本文的主題。
  • 如果這不是您的新手,那么我強烈建議您閱讀Java EE 5教程–示例:保護Web應用程序 (使用JSP頁面進行基于表單的身份驗證,包括安全性約束規范,使用JAX-WS進行基本身份驗證,保護企業Bean,使用isCallerInRole和getCallerPrincipal方法)。

    為什么要打擾?

    • 聲明式安全性與業務代碼完全分離
    • 在Web應用程序與EJB之間傳播安全性信息很容易(在EJB中,您可以通過xml或@RolesAllowed之類的注解聲明性地保護完整的bean或特定方法)
    • 切換到其他身份驗證機制(例如LDAP)很容易,并且很可能會支持SSO

    自定義登錄模塊實施選項

    如果JBoss 提供的現成的登錄模塊(也稱為安全域)(例如UsersRoles,Ldap,Database,Certificate)不足以滿足您的需求,則可以調整其中之一或實現自己的登錄模塊 。 您可以:

  • 擴展其中一個具體模塊,覆蓋其一種或某些方法以適應您的需求-請參閱f.ex。 如何重寫DatabaseServerLoginModule以指定您自己的存儲密碼加密方式。 這應該是您的主要選擇。
  • 子類UsernamePasswordLoginModule
  • 如果需要最大的靈活性和可移植性,請實現javax.security.auth.spi.LoginModule(這是Java EE的一部分,即JAAS ,非常復雜)
  • JBoss EAP 5 安全指南 12.2。 自定義模塊對基本模塊(AbstractServerLoginModule,UsernamePasswordLoginModule)以及子類或其他任何標準模塊的子類化如何進行了出色的描述,包括對實現/覆蓋的關鍵方法的描述。 您必須閱讀它。 (在這方面,該指南仍然完全適用于JBoss AS7 。)定制的JndiUserAndPass模塊示例 (擴展了UsernamePasswordLoginModule)也值得一讀–它使用模塊選項和JNDI查找。

    示例:自定義UsernamePasswordLoginModule子類

    請參閱MySimpleUsernamePasswordLoginModule的源代碼,該源代碼擴展了JBoss的UsernamePasswordLoginModule 。

    抽象的UsernamePasswordLoginModule ( 源代碼 )通過比較用戶提供的相等性密碼與從子類實現的getUsersPassword方法返回的密碼來工作。 您可以使用方法getUsername獲取嘗試登錄的用戶的用戶名。

    實現抽象方法

    getUsersPassword()

    實現getUsersPassword()可以在任何地方查找用戶密碼。 如果您未以純文本格式存儲密碼,請閱讀下面的方法,以了解如何自定義行為

    getRoleSets()

    實現getRoleSets()(來自AbstractServerLoginModule)以返回至少一個名為“ Roles”的組,其中包含分配給用戶的0+個角色,請參閱此帖子的源代碼中的實現。 通常,您會在某個地方查找用戶的角色(而不是返回硬編碼的“ user_role”角色)。

    (可選)擴展initialize(..)以訪問模塊選項等。

    通常,您還需要擴展initialize(Subject subject,CallbackHandler callbackHandler,Map sharedState,Map options) (每次身份驗證嘗試都需要調用),

    • 要獲取通過安全域配置中的<module-option ..>元素聲明的屬性的值, 請參見JBoss 5定制模塊示例
    • 要進行其他初始化,例如通過JNDI查找數據源–請參見DatabaseServerLoginModule

    (可選)重寫其他方法以自定義行為

    如果您不以純文本格式存儲密碼(明智的選擇!),并且不支持開箱即用的哈希方法,則可以覆蓋createPasswordHash(String username,String password,String摘要選項)來哈希/加密用戶提供的密碼密碼與存儲的密碼進行比較之前。

    或者,您可以重寫validatePassword(String inputPassword,String ExpectedPassword)以在比較之前對密碼進行任何轉換,甚至可以進行除相等以外的其他類型的比較。

    自定義登錄模塊部署選項

    在JBoss AS中,您可以

  • 在<JBoss AS 7> / modules /下 ,將登錄模塊類作為獨立模塊獨立于Web應用程序部署在JAR中,并與module.xml一起部署-在JBossAS7SecurityCustomLoginModules中進行了描述
  • 將登錄模塊類部署為webapp的一部分(不需要module.xml)
  • 在WEB-INF / lib /中的JAR中
  • 直接在WEB-INF / classes下
  • 在每種情況下,您都必須在JBoss配置(standalone / configuration / standalone.xml或domain / configuration / domain.xml)中聲明一個對應的安全域:

    <security-domain name='form-auth' cache-type='default'><authentication><login-module code='custom.MySimpleUsernamePasswordLoginModule' flag='required'><!--module-option name='exampleProperty' value='exampleValue'/--></login-module></authentication> </security-domain>

    code屬性應包含您的登錄模塊類的完全限定名稱,并且安全域的名稱必須與jboss-web.xml中的聲明匹配:

    <?xml version='1.0' encoding='UTF-8'?> <jboss-web><security-domain>form-auth</security-domain><disable-audit>true</disable-audit> </jboss-web>

    代碼

    下載包含自定義登錄模塊MySimpleUsernamePasswordLoginModule 的webapp jboss-custom-login ,并按照README中的部署說明進行操作。

    參考: The Holy Java博客上的JCG合作伙伴 Jakub Holy 在JBoss AS 7(及更早版本)中創建自定義登錄模塊 。


    翻譯自: https://www.javacodegeeks.com/2012/06/jboss-as-7-custom-login-modules.html

    jboss as7 下載

    總結

    以上是生活随笔為你收集整理的jboss as7 下载_JBoss AS 7:定制登录模块的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。