私のアプリケーションは、認証プロセス中に Web サービスを呼び出します (以下のコードを参照)。
このプロセス中に HttpSession に情報を保存するにはどうすればよいですか? 顧客アカウント番号などのこの情報は、ユーザーがログインした後、アプリケーションのさまざまな場所で使用されます。HttpSession パラメーターを MyServiceManager の静的ログイン メソッドに渡すことはできますか?
public class MyAuthenticationManager implements AuthenticationProvider {
@Override
public boolean supports(Class<? extends Object> authentication) {
return authentication.equals(UsernamePasswordAuthenticationToken.class);
}
@Override
public Authentication authenticate(Authentication authentication) {
//MyServiceManager.login - makes a call to web service
if(MyServiceManager.login(authentication.getName(), authentication.getCredentials().toString(), XXX_HTTP_SESSION_XXX))
{
List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority> ();
authorities.add(new GrantedAuthorityImpl("ROLE_USER"));
authorities.add(new GrantedAuthorityImpl("ROLE_SUPERVISOR"));
return new UsernamePasswordAuthenticationToken(authentication.getName(), authentication.getCredentials(),authorities);
}
else
{
return null;
}
}
}