WebLogic中默认"经过身份验证的角色"的角色名称是什么?如何在部署描述符中引用它?

Jay*_*ont 3 weblogic java-ee weblogic12c

我正在尝试在Web应用程序中实现身份验证机制,我正在WebLogic 12c实例上进行部署.我想限制只有经过身份验证的用户访问某些页面.

我的问题在于弄清楚如何定义我的安全部分的auth-constraint来执行此操作.这是我的web.xml的安全部分:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>secure</web-resource-name>
        <url-pattern>/secure/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>user</role-name>
    </auth-constraint>
</security-constraint>

<security-role>
    <description>Any User</description>
    <role-name>user</role-name>
</security-role>


<login-config>
    <auth-method>FORM</auth-method>
    <realm-name>myrealm</realm-name>
    <form-login-config>
        <form-login-page>/login.html</form-login-page>
        <form-error-page>/auth_error.html</form-error-page>
    </form-login-config>
</login-config>
Run Code Online (Sandbox Code Playgroud)

现在,身份验证工作正常,但是当我尝试访问任何安全页面时,我得到403 - Forbidden,我很确定这是因为我没有任何用户映射到"用户"角色.我已经尝试为角色名称指定通配符(*),但这不起作用.

我宁愿不必在WebLogic端配置任何映射.WebLogic文档指定有一个特殊的"经过身份验证的角色"会自动提供给任何进行身份验证的用户(请参阅http://docs.oracle.com/cd/E14571_01/core.1111/e10043/introroles.htm#CJAGGDCA)

该文档适用于11g - 与12c中的角色相同吗?如果是这样,我可以在我的web.xml中引用它来授予任何经过身份验证的用户的访问权限吗?它的角色名称是什么?

Jay*_*ont 9

我相信我找到了解决方案.

我没有确定默认身份验证角色的名称,但WebLogic中似乎有一个名为"users"的隐式组,默认情况下所有用户都属于该组.该组似乎不会显示在管理控制台中的任何位置,但默认情况下所有用户似乎都属于它.

在我的web.xml中,我定义了"authenticated-users"角色(名称并不重要).然后,在weblogic.xml中,我将该角色映射到"users"组.这允许任何经过身份验证的用户访问受"authenticated-users"约束保护的任何页面.

我只使用FORM身份验证对此进行了测试,但我没有看到为什么它不适用于其他方法的任何原因.

web.xml中:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>secure</web-resource-name>
        <url-pattern>/secure/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>authenticated-users</role-name>
    </auth-constraint>
</security-constraint>

<security-role>
    <description>Any User</description>
    <role-name>authenticated-users</role-name>
</security-role>


<login-config>
    <auth-method>FORM</auth-method>
    <realm-name>myrealm</realm-name>
    <form-login-config>
        <form-login-page>/login_form.html</form-login-page>
        <form-error-page>/login_error.html</form-error-page>
    </form-login-config>
</login-config>
Run Code Online (Sandbox Code Playgroud)

weblogic.xml中

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:wls="http://www.bea.com/ns/weblogic/90"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd">

<wls:security-role-assignment>
    <wls:role-name>authenticated-users</wls:role-name>
    <wls:principal-name>users</wls:principal-name>
</wls:security-role-assignment>
Run Code Online (Sandbox Code Playgroud)