2017-11-25 14 views
6

Tôi đang cố gắng bảo mật một ứng dụng web demo trên wildfly. tôi đã xác định lĩnh vực an ninh này trong standalone.xmlHạn chế bảo mật Wildfly bị bỏ qua

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

sau đó dưới sự web-inf tôi đã xác định này costraints an ninh trong web.xml

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

và nội dung này trong jboss- web.xml

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

</jboss-web> 

vấn đề là nếu tôi truy cập URL/dự án, tôi không chuyển hướng đến trang đăng nhập như thể ràng buộc bị bỏ qua.

+0

Bạn đã bảo vệ '/ twp/projects/*' not '/ projects' ... –

+0

Tôi đã thử nhưng không hoạt động tốt – Sindico

Trả lời

9

Với cấu hình của bạn, nó hoạt động tốt. Tại giao diện điều khiển để bạn có được hai dòng này ?:

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' 

Nếu không, bạn nên đặt cấu hình của bạn vào các phần corrent trong standalone.xml của wildfly

Đầu tiên có nghĩa là con đường được đảm bảo và thứ hai cho bạn biết ngữ cảnh web được khôi phục.

Mọi url dưới http://localhost:8080/test-1.0-SNAPSHOT/twp/projects sẽ được bảo mật và chuyển hướng đến trang đăng nhập.

Ví dụ

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

nhưng không

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

tôi sử dụng wildfly 11 với urn: JBoss: miền: an ninh: 2.0 và không elytron.

Các vấn đề liên quan