将 JavaEE 应用程序角色映射到 weblogic 安全角色
Map JavaEE app roles to weblogic security roles
我想我可能在这里遗漏了一些明显的东西,但我有一个 weblogic 服务器设置来托管我的 J2EE web 应用程序。除此之外,我还有企业管理器设置,允许将 LDAP 服务器映射到安全角色,例如 AD 组:
g-uk-用户
可能映射到安全角色:
英国用户
然后我尝试使用这些安全角色对我的 Web 应用程序进行身份验证,但是我似乎只能在我的应用程序中找到 weblogic 组或用户与角色之间的映射,例如:
To associate a user or group with the TaskAdmins role, edit the <wls:principal-name> entry that is associated with the <wls:role-name>TaskAdmins</wls:role-name> entry. For example,<wls:security-role-assignment>
<wls:role-name>TaskAdmins</wls:role-name>
<wls:principal-name>User_or_group</wls:principal-name>
重要提示:您必须为要与 TaskAdmins 角色关联的每个用户或组创建一个新节。
当在 weblogic 中使用组时,这个概念非常有效,但我不想映射到我希望能够映射到我似乎无法做到的安全角色的组。
web.xml
<security-constraint>
<display-name>MySecurityConstraint</display-name>
<web-resource-collection>
<web-resource-name>SecureContent</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>PORTAL_USER</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>myrealm</realm-name>
<form-login-config>
<form-login-page>/login</form-login-page>
<form-error-page>/login?error</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>PORTAL_USER</role-name>
</security-role>
<security-role>
<role-name>ACT_AS</role-name>
</security-role>
<security-role>
<role-name>ADMIN</role-name>
</security-role>
weblogic.xml
<wls:security-role-assignment>
<wls:role-name>PORTAL_USER</wls:role-name>
<wls:principal-name>Admin</wls:principal-name>
<wls:security-role-assignment>
<wls:role-name>ACT_AS</wls:role-name>
<wls:principal-name>ACT_AS</wls:principal-name>
已在
中回答此问题
我基本上对映射很困惑。如果角色是在 Weblogic 中创建的,则不应在应用程序本身内完成映射,因为这是 Weblogic 有效地为您做的事情。然而,我找不到让我的应用程序能够获得这些角色的方法(或了解它是如何做到的!)而且我还直接从 Eclipse 进行部署,这意味着您只能使用映射到应用程序中定义的角色本身。
构建和部署应用程序并在 weblogic 的安全设置下选择自定义角色将允许为该应用程序创建安全角色,并且还将允许该应用程序使用来自 Weblogic 的安全角色。这些角色仍应在 web.xml 中定义,weblogic 将处理其余部分!
我想我可能在这里遗漏了一些明显的东西,但我有一个 weblogic 服务器设置来托管我的 J2EE web 应用程序。除此之外,我还有企业管理器设置,允许将 LDAP 服务器映射到安全角色,例如 AD 组:
g-uk-用户
可能映射到安全角色:
英国用户
然后我尝试使用这些安全角色对我的 Web 应用程序进行身份验证,但是我似乎只能在我的应用程序中找到 weblogic 组或用户与角色之间的映射,例如:
To associate a user or group with the TaskAdmins role, edit the <wls:principal-name> entry that is associated with the <wls:role-name>TaskAdmins</wls:role-name> entry. For example,<wls:security-role-assignment>
<wls:role-name>TaskAdmins</wls:role-name>
<wls:principal-name>User_or_group</wls:principal-name>
重要提示:您必须为要与 TaskAdmins 角色关联的每个用户或组创建一个新节。
当在 weblogic 中使用组时,这个概念非常有效,但我不想映射到我希望能够映射到我似乎无法做到的安全角色的组。
web.xml
<security-constraint>
<display-name>MySecurityConstraint</display-name>
<web-resource-collection>
<web-resource-name>SecureContent</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>PORTAL_USER</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>myrealm</realm-name>
<form-login-config>
<form-login-page>/login</form-login-page>
<form-error-page>/login?error</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>PORTAL_USER</role-name>
</security-role>
<security-role>
<role-name>ACT_AS</role-name>
</security-role>
<security-role>
<role-name>ADMIN</role-name>
</security-role>
weblogic.xml
<wls:security-role-assignment>
<wls:role-name>PORTAL_USER</wls:role-name>
<wls:principal-name>Admin</wls:principal-name>
<wls:security-role-assignment>
<wls:role-name>ACT_AS</wls:role-name>
<wls:principal-name>ACT_AS</wls:principal-name>
已在
我基本上对映射很困惑。如果角色是在 Weblogic 中创建的,则不应在应用程序本身内完成映射,因为这是 Weblogic 有效地为您做的事情。然而,我找不到让我的应用程序能够获得这些角色的方法(或了解它是如何做到的!)而且我还直接从 Eclipse 进行部署,这意味着您只能使用映射到应用程序中定义的角色本身。
构建和部署应用程序并在 weblogic 的安全设置下选择自定义角色将允许为该应用程序创建安全角色,并且还将允许该应用程序使用来自 Weblogic 的安全角色。这些角色仍应在 web.xml 中定义,weblogic 将处理其余部分!