2014-03-05 171 views
3

我下载了JavaMelody(服务器统计信息)并将其应用于我的Spring项目。在插入http://myAplication/monitoring后,我可以看到JavaMelody页面。我决定,这应该由密码保护。所以我也跟着文档和tomcat-users.xmlTomcat身份验证和Spring安全性

<?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(我没有看到在我的应用程序中的任何地方弹出)。

enter image description here enter image description here

而现在,我输入凭据春季安全(其他凭证)和JavaMelody页开始出现,但另一个监控弹出窗口显示,然后春季安全,又一次,再次... - 直到加载所有页面元素。

我的春季安全的conf

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

有没有一种方法,使春季安全和Tomcat认证一起工作?

回答

4

你必须决定你想要的:Container Manager Security(web.xml)或Spring Security(beans.xml)。你不应该同时使用两者。这就是为什么你会看到两个基本领域名称。

+0

我明白了。感谢您的信息,我必须处理:) – alvaro991

+0

@ Michael-O如何在普通表单登录之前添加''弹簧安全配置以使用基本身份验证? – Alex

+1

您可以提供和优先/订单属性。它有明确的定义,可以在官方的[Spring docs]中查找(http://docs.spring.io/spring-security/site/docs/4.0.0.RELEASE/reference/htmlsingle/#filter-stack) 。 –