認証にSpring Security 3.1を使用していますが、ログインは正常に機能します。ユーザーがサインアップするとき、ユーザーがログインせずに制限されたページに進むことを望みます。
stackoverflow にはいくつかの同様の質問があり、回答がわずかに異なります。これらを試してみましたが、何もうまくいかないようです。これが私のセキュリティ構成です:
<http pattern="/resources/**" security="none" />
<http pattern="/login" security="none" />
<http pattern="/user/forgotPassword" security="none" />
<http pattern="/user/createAccount" security="none" />
<http>
<intercept-url pattern="/**" access="ROLE_USER" />
<form-login login-page="/login" default-target-url="/defaultUrl"
always-use-default-target="true"
authentication-failure-url="/loginfailed" />
</http>
そして、これが私のコードです(ユーザーが作成され、データベースに追加された後):
UsernamePasswordAuthenticationToken upaToken = new UsernamePasswordAuthenticationToken(user.getName(), user.getPassword());
request.getSession();
upaToken.setDetails(new WebAuthenticationDetails(request));
Authentication auth = authenticationManager.authenticate(upaToken);
SecurityContextHolder.getContext().setAuthentication(upaToken);
return "redirect:<restricted-page>";
制限されたページにリダイレクトされる代わりに、ログイン ページが表示されます。私は何が欠けていますか?
また、ユーザーを認証するための呼び出しを避けたいと思います。ユーザーがサインアップしたばかりなので、不要のようです。しかし、それを削除しても何も変わらないようです。