Tomcat身份验证和Spring安全性

alv*_*991 3 java spring tomcat spring-mvc spring-security

我下载了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>
Run Code Online (Sandbox Code Playgroud)

然后我插入了一些线条 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>
Run Code Online (Sandbox Code Playgroud)

现在,当我输入时,http://myAplication/monitoring我会获得身份验证弹出窗口 - 这很酷.但是当我输入凭据并单击确定时,会显示另一个身份验证弹出窗口.区别在于,这个是来自Spring Security(我的app中没有看到弹出窗口).

在此输入图像描述 在此输入图像描述

现在,我输入Spring Security的凭证(其他凭据)和JavaMelody页面开始显示,但是另一个监视弹出窗口显示,然后弹出安全性,再次,再次...... - 直到所有页面元素都被加载.

我的Spring Security 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>
Run Code Online (Sandbox Code Playgroud)

有没有办法让Spring Security和Tomcat身份验证协同工作?

Mic*_*l-O 5

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