0

我正在尝试添加 Spring 安全性,但无法使其正常工作。但是我原以为这会导致浏览器弹出一个对话框,询问用户名和密码,但没有显示任何内容。它只是给我带来了正常的页面,而没有强制执行任何安全措施。使用 Spring 3.1:

web.xml

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

context.xml

<security:http>
    <security:http-basic />
    <security:intercept-url pattern="/**" access="ROLE_USER" />
</security:http>

<security:authentication-manager>
    <security:authentication-provider>
        <security:user-service>
            <security:user name="test" password="testpass" authorities="ROLE_USER" />
        </security:user-service>
    </security:authentication-provider>
</security:authentication-manager>
4

2 回答 2

-1

您需要在 web.xml 中添加 spring 安全上下文,以便 Web 应用程序可以正确加载您的 context.xml。

这是一个关于如何使用spring security甚至一些自定义进行基本身份验证的示例

于 2013-04-29T07:25:32.030 回答
-1

你也需要这样的东西

 <security:form-login login-page='/Login' authentication-failure-url="/Login?login_error=1"/>

而且您需要创建自己的登录页面,其中至少包含这个,并映射到上面的 url(显然不一定与我的相同):

<form name="f" id="f" action="<c:url value='/j_spring_security_check'/>" method="POST">
  <label for="j_username">Username :&nbsp;</label>
  <input type='text' id='j_username' name='j_username'/><br/>
  <label for="j_password">Password :&nbsp;</label>
  <input type='password' id='j_password' name='j_password'><br>
于 2013-04-28T18:46:14.080 回答