我已经配置了名为" sven"的应用程序用户在我的WildFly 8.2 Application Server上。我正在尝试使用BASIC方法实现基本安全性。尝试访问受保护资源(secret/infidels.xhtml
)后,系统会提示我使用登录对话框。在填写了" sven"的用户详细信息后,我收到了一个禁止页面。
将服务器日志级别更改为TRACE后,日志会确认" sven"正确认证:
13:45:09,481 TRACE [org.wildfly.extension.undertow] (default task-3) User: org.wildfly.extension.undertow.security.AccountImpl$AccountPrincipal@360e4c is authenticated
项目结构:
src
└── main
├── resources
└── webapp
├── WEB-INF
│ ├── faces-config.xml
│ ├── jboss-web.xml
│ └── web.xml
├── index.xhtml
└── secret
└── infidels.xhtml
的web.xml
<web-app>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
<security-constraint>
<web-resource-collection>
<web-resource-name>MySecret</web-resource-name>
<url-pattern>/secret/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>sven</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>PG6100</realm-name>
</login-config>
<security-role>
<role-name>sven</role-name>
</security-role>
</web-app>
的JBoss-web.xml中
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 5.0//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd">
<jboss-web>
<security-domain>other</security-domain>
</jboss-web>
简而言之,即使在认证之后,用户&#34; sven&#34;无法访问受保护的资源。我在某个地方错过了一些配置吗?
答案 0 :(得分:3)
解决了它。我错误地认为
中指定的名称<role-name>sven</role-name>
是已注册的应用用户本身的名称。事实证明它应该是一个组的名称,事后才知道注册每个用户的初步想法似乎是一个疯狂的游戏。