我们如何为任何角色

时间:2017-06-22 03:31:52

标签: authentication java-ee authorization websphere wildfly

对于Wildfly,任何经过身份验证的用户都可以通过web.xml中的以下更改来访问任何受保护的资源

<auth-constraint>
        <role-name>*</role-name>
</auth-constraint>

在安全性约束和定义安全角色如下

<security-role>
    <role-name>*</role-name>
</security-role>

但是同样不适用于Websphere,抛出授权失败的异常,因为它需要在Websphere Adminconsole中进行更改。

  1. WAS AdminConsole - &gt;应用程序&gt;企业应用程序 - &gt;点击.EAR
  2. 单击“安全角色到用户/组映射”
  3. 选择您要用于身份验证的角色。(在我的情况下是 *,在web.xml中定义)
  4. 将特殊主题映射到&#34;所有在应用领域中认证的&#34;
  5. 如何跳过adminconsole更改以使其正常工作,或任何其他更好的方法。

2 个答案:

答案 0 :(得分:0)

对我有用的是我在 web.xml 中定义ff:

explain analyze SELECT name FROM slides WHERE name ILIKE '%hu%';

QUERY PLAN                                                
---------------------------------------------------------------------------------------------------------
 Seq Scan on slides  (cost=0.00..2803.86 rows=932 width=25) (actual time=0.053..31.075 rows=910 loops=1)
   Filter: ((name)::text ~~* '%hu%'::text)
   Rows Removed by Filter: 25399
 Planning time: 0.954 ms
 Execution time: 31.220 ms
(5 rows)

本质上,这定义了角色,然后是页面的单独定义以及允许访问它的角色。

然后我还在我的EAR文件中定义了 ibm-application-bnd.xml ,如下所示:

<security-role>
  role1
</security-role>

<security-role>
  role2
</security-role>

     <security-constraint>
        <display-name>All Authenticated</display-name>
        <web-resource-collection>
            <web-resource-name>
                All Authenticated Pages
            </web-resource-name>
            <url-pattern>/webpage.xhtml</url-pattern> 
        </web-resource-collection>
        <auth-constraint>
            <role-name>role1</role-name>
            <role-name>role2</role-name> 
        </auth-constraint>
    </security-constraint>

我认为WebSphere使用这个映射到它对你定义的角色进行分组。

希望这有助于推动你前进。

答案 1 :(得分:0)

为了实现上述目标,即对WebSphere中所有经过身份验证的用户的授权,创建一个逻辑角色[不需要创建任何物理组]说&#34; AllAuthneticated&#34;在web.xml中并将其作为授权约束提供。

 <auth-constraint>
      <role-name>AllAuthneticated</role-name>
 </auth-constraint>


<security-role>
    <role-name>AllAuthneticated</role-name>
</security-role>

然后在EAR文件中定义ibm-application-bnd.xml,如下所示:

<security-role name="AllAuthneticated">
         <special-subject type="ALL_AUTHENTICATED_USERS" />
</security-role>

上述角色映射将允许所有经过身份验证的用户访问受保护资源。