2

私のremember-me Beanの定義は次のようになり、正常に動作します

<security:remember-me  data-source-ref="dataSource" user-service-ref="userService"/>

ただし、ユーザーが初めて登録するときは、プログラムでログインして、記憶を実行したいと考えています。リメンバーミーサービスへのアクセス方法がわかりません。私がすることができます

UsernamePasswordAuthenticationToken auth = 
    new UsernamePasswordAuthenticationToken(user, "", authorities);
SecurityContextHolder.getContext().setAuthentication(auth);

HttpServletRequestWrapper wrapper = new HttpServletRequestWrapper(request) {
    @Override public String getParameter(String name) { return "true"; }            
};

しかし、自分の Bean ではなくデフォルトの Spring 実装を使用しているため、以下のような remember-me サービスにアクセスするにはどうすればよいですか?

getRememberMeServices().loginSuccess(wrapper, response, auth);

ここから

編集 Bean 定義を次のように変更しました

<security:remember-me services-alias="rememberMeService" data-source-ref="dataSource" user-service-ref="userService"/>

しかし、次のように注入しようとすると、intellij はまだエラーで戻ってきます。

@Resource(name = "rememberMeService")
private RememberMeServices rememberMeService;
4

1 に答える 1

2

名前空間要素services-aliasの属性を使用して、 の Bean エイリアスを設定できます。その後、自分で作成した他の Bean にその参照を注入できます。remember-meRememberMeServices

于 2013-02-09T15:15:01.463 に答える