我按照这个结论在weblogic中创建安全角色:http://blog.whitehorses.nl/2010/01/29/weblogic-web-application-container-security-part-1/
我在weblogic服务器组RobMon和用户监视器中创建传递.然后我创建这个xml:
我的web.xml:
<security-constraint>
<web-resource-collection>
<web-resource-name>my-application</web-resource-name>
<url-pattern>/admin</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>RobMon</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>RobMon</role-name>
</security-role>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login</form-login-page>
<form-error-page>/login</form-error-page>
</form-login-config>
</login-config>
Run Code Online (Sandbox Code Playgroud)
weblogic.xml中:
<wls:security-role-assignment>
<wls:role-name>RobMon</wls:role-name>
<wls:principal-name>RobMon</wls:principal-name>
</wls:security-role-assignment>
Run Code Online (Sandbox Code Playgroud)
现在我想打印角色和原则:
Subject subject = Security.getCurrentSubject();
Set<Principal> allPrincipals = subject.getPrincipals();
for (Principal principal : allPrincipals) {
if (principal instanceof WLSGroupImpl) {
logger.error(principal.getName() + "??????????");
roles.add(principal.getName());
}
if (principal instanceof WLSUserImpl) {
logger.error(principal.getName() + "!!!!!!!!!!!");
user = principal.getName();
}
}
Run Code Online (Sandbox Code Playgroud)
但这给我印上了我想要的东西
admin!!!!!!!!!!!
Administrators??????????
Run Code Online (Sandbox Code Playgroud)
它应该println监视器和RobMon.怎么了 ?
在weblogic.xml中,您已将RobMon角色分配给用户RobMon,这意味着当用户RobMon通过身份验证时,将为其分配RobMon角色.
在本教程中,使用主体组用户而不是RobMon用户,这意味着在进行身份验证后,将为该组的所有用户分配角色.
检查主要RobMon是否存在于您的安全领域.我认为用户RobMon不存在于您的安全领域.您可能希望将角色分配给用户监视器.所以weblogic.wml中的配置应该是:
<wls:security-role-assignment>
<wls:role-name>RobMon</wls:role-name>
<wls:principal-name>monitor</wls:principal-name>
</wls:security-role-assignment>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17040 次 |
| 最近记录: |