Springを使用して自分のWebサイトに「rememberme」機能を実装しようとしています。cookieとpersistent_loginsテーブルのエントリが正しく作成されています。さらに、ページの上部にユーザー名が表示されているため、正しいユーザーが復元されていることがわかります。
ただし、このユーザーが「記憶」された後に戻ってきたときにこのユーザーの情報にアクセスしようとすると、NullPointerExceptionが発生します。ユーザーがセッションに再度設定されていないように見えます。
私のapplicationContext-security.xmlには次のものが含まれています。
<remember-me data-source-ref="dataSource" user-service-ref="userService"/>
...
<authentication-provider user-service-ref="userService" />
<jdbc-user-service id="userService" data-source-ref="dataSource"
role-prefix="ROLE_"
users-by-username-query="select email as username, password, 1 as ENABLED from user where email=?"
authorities-by-username-query="select user.id as id, upper(role.name) as authority from user, role, users_roles where users_roles.user_fk=id and users_roles.role_fk=role.name and user.email=?"/>
ユーザーごとのクエリと関係があるのではないかと思いましたが、このクエリが正しくないとログインが正しく機能しませんでしたか?
これに関する助けをいただければ幸いです。
ありがとう、ギアロイド。