セキュリティのために Apache Shiro 1.2 を使用して vaadin ベースのプロジェクトを開発しています。「記憶」機能に問題があります。CookieRememberMeManager を RememberMeManager として使用しようとしましたが、認証後に Subject.isRemembered() は常に false を返します。
public class ApplicationSecurityManager extends DefaultSecurityManager {
public ApplicationSecurityManager(Realm singleRealm) {
super(singleRealm);
setRememberMeManager(new CookieRememberMeManager());
}
}
GuiceFilter の init メソッドに SecurityManager を設定しています。
final Realm realm = new ApplicationSecurityRealm();
final SecurityManager securityManager = new ApplicationSecurityManager(realm);
SecurityUtils.setSecurityManager(securityManager);
アプリケーションにログインしようとすると、「remember me」機能以外はすべて正常に動作します。コード:
final Subject currentUser = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(username,password);
token.setRememberMe(rememberMe);
currentUser.login(token);
アプリケーションには例外がなく、デバッグを使用してこの問題を解決できませんでした。Apache Tomcat 7.0.40 を使用していますが、Cookie を禁止できますか?
Ps 私の英語で申し訳ありません。私は英語圏の国ではありません。