2013-02-09 3 views
2

는 빈 정의가 사용자 등록을 다음과 같습니다, 미세하지만의 프로그래밍 방식은

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

처음 작동 - 나를 기억 내, 내가 프로그램에서 그들을 기록 할 스프링 secruity으로 - 나를 기억하고 기억 수행 -나를. 나는 remember-me 서비스에 액세스하는 방법을 모른다. 내가 할 수있는이

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

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

하지만 어떻게 액세스 할 수있는 기억 - 제가 기본 스프링의 구현이 아니라 내 자신의 콩을 사용하고로서, 아래와 같은 서비스? here

편집에서

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

나는이

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

처럼 내 빈 정의를 변경하지만이 같은 주입 할 때 인 IntelliJ는 여전히 다시 오류로오고있다 :

@Resource(name = "rememberMeService") 
private RememberMeServices rememberMeService; 
+0

_ @ Resource_를 _ @ Inject_ 또는 _ @ Autowired_ –

답변

2

remember-me namespace elementservices-alias 속성을 사용하여 RememberMeServices에 대한 bean 별명을 설정할 수 있습니다. 그런 다음 자신이 직접 작성한 다른 bean에 해당 참조를 삽입 할 수 있습니다.

+0

으로 바꾸어보세요. 고맙겠습니다. 시도했지만 오류가 계속 발생했습니다. 제 편집을 참조하십시오. – NimChimpsky

+0

그 밖의 사람은 intellij 검사에서 오류로 잘못 표시됩니다. http://youtrack.jetbrains.com/issue/IDEA-101018 – NimChimpsky

관련 문제