2017-11-21 27 views
0

私はResteasy restサービスの一部を、WebアプリケーションにKeycloakベアラ専用トークン検証を追加することで確保しようとしています。私のweb.xmlにセキュリティ制約が原因で404

私が追加:

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

<login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>RestService</realm-name> 
</login-config> 

<security-role> 
    <role-name>user</role-name> 
</security-role> 

<servlet> 
    <servlet-name>RestApplication</servlet-name> 
    <servlet-class> 
     org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher 
    </servlet-class> 
    <init-param> 
     <param-name>javax.ws.rs.Application</param-name> 
     <param-value>com.web.rest.ResteasyApplication</param-value> 
    </init-param> 
    <init-param> 
     <param-name>resteasy.servlet.mapping.prefix</param-name> 
     <param-value>/rest</param-value> 
    </init-param> 
</servlet> 


<servlet-mapping> 
    <servlet-name>RestApplication</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 

を私はURLを呼んでいる:http://localhost:8090/rest/app

これは限り認証が行くように動作しません。有効なトークンを持つリクエストのみが「受け入れられる」(他のものは401エラーになります)

ただし、この設定を使用すると、常に404エラーが発生します。

security-constraintを無効にすると、Resteasyコントローラがブレークポイントにヒットし、すべて正常です。 マッピングが互いに競合していますか?認証フェーズからResteasy処理へのリクエストをどのように渡しますか?

+0

のご<login-config>使用<auth-method>KEYCLOAK</auth-method>では、同様にあなたのkeycloakアダプタの設定を共有していただけますか? – Boomer

+1

404はkeycloak.jsonが見つからないことが原因です。私はそれが正しくXML構成の代替を使用していると思ったが、それは使用されなかった。 – Cloud

答えて

2

ではなくBASIC

関連する問題