我有这个问题:
在 java web-app(带有 spring 和 spring-security 3.1.4)中有一个 sso 身份验证;这意味着用户在他的电脑上登录后立即进行身份验证。
配置是这样的:
<sec:http>
<sec:logout />
<sec:form-login login-page="/login.jsp" default-target-url="/" />
<sec:anonymous username="guest" granted-authority="ROLE_GUEST" />
<sec:custom-filter ref="headersFilter" after="SECURITY_CONTEXT_FILTER" />
<sec:custom-filter ref="jaasFilter" after="SERVLET_API_SUPPORT_FILTER" />
</sec:http>
这有效(实际上 login.jsp 不存在,因为用户已经登录,如上所述)。
现在的问题是我想要一个“后门”;这意味着我和我的团队应该有一个登录页面来测试和维护应用程序。
它应该像这样工作:
-我调用 localhost/wepapp/myloginpage 我应该看到 myloginpage.jsp(现在可以使用);
-我点击“登录”按钮并输入第二个“元素”,如果登录正常,那么我应该被重定向到“/”(这不起作用,我只是被重定向到“登录”);
- 使用下面的配置,如果我调用它(localhost/wepapp),我似乎也可以在没有身份验证的情况下看到“/”
我尝试了这种配置,但它不起作用,我的意思是我可以在没有身份验证的情况下看到“/”,然后我被重定向到登录(我也尝试了其他小的变化,但结果相同,或多或少):
<sec:http pattern="/myloginpage">
<sec:logout />
<sec:form-login login-page="/myloginpage" default-target-url="/" />
</sec:http>
<sec:http pattern="/login">
<sec:logout />
<sec:form-login login-page="/login" default-target-url="/" />
<sec:anonymous username="guest" granted-authority="ROLE_GUEST" />
<sec:custom-filter ref="headersFilter" after="SECURITY_CONTEXT_FILTER" />
<sec:custom-filter ref="jaasFilter" after="SERVLET_API_SUPPORT_FILTER" />
</sec:http>
我的 myloginpage.jsp:
<form action="login" method="POST">
<table>
<tr>
<td>
Name
</td>
<td>
<input type="text" name="name">
</td>
</tr>
.........
</form>
我还有用于 myloginpage 的控制器:
@Controller
public class Myloginpage {
publicMyloginpage() {
}
@RequestMapping("/myloginpage")
public String home() {
return "myloginpage";
}
}
谢谢,阿德里安