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

时间:2014-05-05 20:07:58

标签: java-ee weblogic 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>

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

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

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

1 个答案:

答案 0 :(得分:8)

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

我没有确定默认身份验证角色的名称,但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>

<强> 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>