2016-02-12 47 views
0

我的Web應用程序使用JAX-WS上開發的SOAP接口。我得到錯誤授權失敗,未授予任何所需角色:AUTHENTICATED您能否給我一些建議? 我的配置是: web.xml中授權失敗,未授予任何所需角色

<security-constraint> 
    <display-name>AuthConstr</display-name> 
    <web-resource-collection> 
     <web-resource-name>AuthConstraint</web-resource-name> 
     <url-pattern>/*</url-pattern> 
     <http-method>GET</http-method> 
     <http-method>PUT</http-method> 
     <http-method>POST</http-method> 
     <http-method>HEAD</http-method> 
     <http-method>TRACE</http-method> 
     <http-method>DELETE</http-method> 
     <http-method>OPTIONS</http-method> 
    </web-resource-collection> 
    <auth-constraint> 
     <description>All HAI authenticated users</description> 
     <role-name>AUTHENTICATED</role-name> 
    </auth-constraint> 
</security-constraint> 
<security-role> 
    <role-name>AUTHENTICATED</role-name> 
</security-role> 
<login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>default</realm-name> 
</login-config> 

的application.xml是:

<security-role id="SecurityRole_AUTHENTICATED"> 
    <role-name>AUTHENTICATED</role-name> 
</security-role> 

IBM應用-bnd.xml

<?xml version="1.0" encoding="UTF-8"?> <application-bnd xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns="http://websphere.ibm.com/xml/ns/javaee" 
      xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-application-bnd_1_1.xsd" 
      version="1.1"> 

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

而且在Java中WS我用註釋

@RolesAllowed("AUTHENTICATED") 

回答

0

我不知道你什麼時候得到這個錯誤,但至少,我認爲你需要從安全的URL模式排除登錄頁面。在被要求認證的同時,沒有人可以被認證。 我的意思是,如果您將所有安全的「資源」置於路徑「安全」下,則可以將<url-pattern>/*</url-pattern>設置爲<url-pattern>/secured/*</url-pattern>,並避免安全登錄頁面。