【发布时间】:2014-04-07 13:38:46
【问题描述】:
我下载了 JavaMelody(服务器统计信息)并将其应用到我的 Spring 项目中。一切都很好用这个 - 插入 http://myAplication/monitoring 后,我可以看到 JavaMelody 页面。我决定,这应该受密码保护。所以我按照文档添加了tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="monitoring" />
<user username="monitoring" password="monitoring" roles="monitoring" />
</tomcat-users>
然后我在web.xml中插入了几行
<filter>
<filter-name>monitoring</filter-name>
<filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>monitoring</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>net.bull.javamelody.SessionListener</listener-class>
</listener>
<!-- JAVA MELODY MONITOR ACCESS -->
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Monitoring</realm-name>
</login-config>
<security-role>
<role-name>monitoring</role-name>
</security-role>
<security-constraint>
<web-resource-collection>
<web-resource-name>Monitoring</web-resource-name>
<url-pattern>/monitoring</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>monitoring</role-name>
</auth-constraint>
</security-constraint>
现在,当我输入 http://myAplication/monitoring 时,我会弹出身份验证 - 这很酷。但是当我输入凭据并单击确定时,会显示另一个身份验证弹出窗口。不同的是,这个来自 Spring Security(我在我的应用程序的任何地方都没有看到那个弹出窗口)。
现在,我输入 Spring Security 的凭据(其他凭据),JavaMelody 页面开始显示,但另一个 monitoring 弹出窗口显示,然后是 spring security,然后再次显示,然后再次... - 直到所有页面元素都加载完毕。
我的 Spring Security 配置
<http auto-config='true' use-expressions="true">
<intercept-url pattern="/**" access="permitAll" />
<form-login login-page='/' default-target-url='/login_ok'
always-use-default-target='true' authentication-failure-url="/login_failed" />
<logout logout-success-url="/" />
</http>
有没有办法让 Spring Security 和 Tomcat Authentication 一起工作?
【问题讨论】:
标签: java spring tomcat spring-mvc spring-security