現在、Spring Web アプリケーションにログインメカニズムを実装しようとしていますが、Spring で使用されるセキュリティの概念について少し混乱しています。
ログインが必要なページにアクセスすると、ログイン ページに正しくリダイレクトされます。ログイン後、実際のページが表示されます (今のところ問題ありません)。
このコード
<security:http use-expressions="true" auto-config="true">
<security:intercept-url pattern="/login" access="permitAll" />
<security:intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
<security:form-login login-page="/login" default-target-url="/welcome"
authentication-failure-url="/loginfailed" />
<security:logout logout-success-url="/logout" />
<security:remember-me/>
</security:http>
ただし、同じページに再度アクセスすると、もう一度ログインする必要があります。だから私はある種のセキュリティセッションが必要です。私はすでに、remember-me と session-management について多くのことを試して読みましたが、その方法を見つけることができませんでした。
誰かが私にいくつかの指示、春のドキュメントの適切な章、またはキーワードを教えてもらえますか?
ログインフォーム
<form name='f' action="<c:url value='j_spring_security_check' />"
method='POST'>
<table>
<tr>
<td>User:</td>
<td><input type='text' name='j_username' value=''>
</td>
</tr>
<tr>
<td>Password:</td>
<td><input type='password' name='j_password' />
</td>
</tr>
<tr>
<td colspan='2'><input name="submit" type="submit"
value="submit" />
</td>
</tr>
<tr>
<td colspan='2'><input name="reset" type="reset" />
</td>
</tr>
</table>
</form>
LoginController.java
@RequestMapping(value="/login", method = RequestMethod.GET)
public String login(ModelMap model) {
return "login";
}
@RequestMapping(value="/loginfailed", method = RequestMethod.GET)
public String loginerror(ModelMap model) {
model.addAttribute("error", "true");
return "login";
}
@RequestMapping(value="/logout", method = RequestMethod.GET)
public String logout(ModelMap model) {
return "login";
}