2017-11-25 17 views
6

wildflyでデモWebアプリケーションを保護しようとしています。 私はweb.xmlのWildflyセキュリティの制約が無視される

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> 

    <security-constraint> 
    <web-resource-collection> 
     <web-resource-name>projects</web-resource-name> 
     <url-pattern>/twp/projects/*</url-pattern> 
     <http-method>POST</http-method> 
     <http-method>GET</http-method> 
     <http-method>PUT</http-method> 
     <http-method>DELETE</http-method> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>ADMINISTRATOR</role-name> 
    </auth-constraint> 
    </security-constraint> 

    <login-config> 
    <auth-method>FORM</auth-method> 
    <realm-name>projects</realm-name> 
    <form-login-config> 
     <form-login-page>/login.xhtml</form-login-page> 
     <form-error-page>/error.xhtml</form-error-page> 
    </form-login-config> 
    </login-config> 
    <security-role> 
    <role-name>ADMINISTRATOR</role-name> 
    </security-role> 
    <security-role> 
    <role-name>USER</role-name> 
    </security-role> 
</web-app> 

とjboss-でこのコンテンツでは、このセキュリティcostraintsを定義したWEB-INFの下で、その後standalone.xmlに

<security-domains> 
       <security-domain name="projects" cache-type="default"> 
        <authentication> 
         <login-module code="Database" flag="required"> 
          <module-option name="dsJndiName" value="java:jboss/datasources/TestDS"/> 
          <module-option name="rolesQuery" value="SELECT role, 'Roles' FROM users WHERE username=?"/> 
          <module-option name="hashAlgorithm" value="MD5"/> 
          <module-option name="hashEncoding" value="hex"/> 
          <module-option name="principalsQuery" value="SELECT password from users WHERE username=?"/> 
         </login-module> 
        </authentication> 
        <authorization> 
         <policy-module code="Database" flag="required"> 
          <module-option name="dsJndiName" value="java:jboss/datasources/school"/> 
          <module-option name="rolesQuery" value="SELECT role, 'Roles' FROM users WHERE username=?"/> 
          <module-option name="hashAlgorithm" value="MD5"/> 
          <module-option name="hashEncoding" value="hex"/> 
          <module-option name="principalsQuery" value="SELECT password from users WHERE username=?"/> 
         </policy-module> 
        </authorization> 
       </security-domain> 

を、このセキュリティドメインを定義していますweb.xmlの

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-web> 
    <security-domain>java:/jaas/projects</security-domain> 

</jboss-web> 

問題は、私は/プロジェクトのURLに行けば制約は無視されたかのように私は、ログインページにリダイレクトされませmをということです。

+0

あなたは '/ twp/projects/*'ではなく '/ projects'を保護しています... –

+0

私は試みましたが、うまくいきません – Sindico

答えて

9

あなたの設定では正常に動作します。コンソールで、あなたはwildfly

のstandalone.xmlでcorrentセクションにコンフィギュレーションを置くべきでない場合は、最初のパスが確保されていることを意味し、この二行?:

WARN [io.undertow.servlet] (ServerService Thread Pool -- 7) UT015020: Path /twp/projects/* is secured for some HTTP methods, however it is not secured for [TRACE, HEAD, CONNECT, OPTIONS] 
INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 7) WFLYUT0021: Registered web context: '/test-1.0-SNAPSHOT' for server 'default-server' 

を取得してください秒はあなたに再Webコンテキストを知らせます。

http://localhost:8080/test-1.0-SNAPSHOT/twp/projectsの下のすべてのURLは保護され、ログインページにリダイレクトされます。

例えば

http://localhost:8080/test-1.0-SNAPSHOT/twp/projects/all

ではなく、私はwildfly 11 URNで使用

http://localhost:8080/test-1.0-SNAPSHOT/twp/all

:JBossの:ドメイン:セキュリティ:2.0とされていませんイレトロン。

関連する問題