我想我可能会遗漏一些明显的东西,但我有一个weblogic服务器设置来托管我的J2EE Web应用程序。除此之外,我还有企业管理器设置,允许将LDAP服务器映射到安全角色,例如AD组:
g-uk-user
可能会映射到安全角色:
UKUser
然后我尝试使用这些安全角色验证我的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>
答案 0 :(得分:1)
在Get Security Roles From Weblogic for Spring Security
中回答了这个问题我基本上对映射非常困惑。如果角色是在Weblogic中创建的,那么映射应该在应用程序本身内完成,因为这正是Weblogic为您有效做的事情。我无法找到一种方法让我的应用程序能够获得这些角色(或理解它将如何做到这一点!)而且我也直接从Eclipse部署,这意味着你只能使用映射到定义的角色应用程序本身。
在weblogic中的安全设置下构建和部署应用程序并选择自定义角色将允许为该应用程序创建安全角色,并且还允许应用程序使用Weblogic中的安全角色。这些角色仍应在web.xml中定义,weblogic将负责其余的工作!