gpt4 book ai didi

java - 忽略了 Wildfly 安全约束

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:00:59 27 4
gpt4 key购买 nike

我正在尝试保护 Wildfly 上的演示 Web 应用程序。我在 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>
</security-domains>

然后在 web-inf 下,我在 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>

这个内容在 jboss-web.xml 中

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

问题是,如果我转到/projects URL,我不会重定向到登录页面,就好像约束被忽略了一样。

最佳答案

根据您的配置,它可以正常工作。在控制台,你得到这两行吗?:

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'

如果不是,您应该将您的配置放在 wildfly 的 standalone.xml 中的相应部分

第一个表示路径是安全的,第二个告诉您重新定位的网络上下文。

http://localhost:8080/test-1.0-SNAPSHOT/twp/projects 下的每个 url将被保护并重定向到登录页面。

例如

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

但不是

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

我将 wildfly 11 与 urn:jboss:domain:security:2.0 一起使用,而不是 elytron。

关于java - 忽略了 Wildfly 安全约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47489828/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com