2013-01-11 2 views
1

임 봄과 프레임 워크에서 일반적으로 ...은 핸들러 스프링 3 이전에 함수입니다.

저는 거의 모든 핸들러에서 실행하고자하는 몇 줄의 코드가 있습니다. 의 HttpSession 속성으로 예를 들어 나는 내 DB 세션과 인증 된 사용자를 저장하고 내 처리기의 대부분을 내가 가진 :

@RequestMapping(....) 
public ModelAndView get(HttpSession ses){ 
    User u = ses.getAttribute("currUser"); 
    DBsession session = ses.getAttribute("DBsession"); 
    if(u==null) new ModelAndView("redirect:login"); 
    ... 
} 

봄 날 위해 그렇게하고 DBsession 및 인증 된 사용자 개체를 얻을 수있는 방법이 있나요 직접 핸들러 매개 변수로?

@RequestMapping(....) 
public ModelAndView get(User u, DBsession session){ 
    ... 
} 
+2

요격기 또는 필터와 같은 의미입니까? –

+0

@Dave 아마 어쩌면 모르겠지만 ... 예와 링크가 있습니까? – ApollonDigital

+0

@Jesse 내 dbsession은 요청 매개 변수가 아니며, httpSession이 생성 될 때마다 생성되는 객체입니다 ... 요청과 관련이 없습니다. – ApollonDigital

답변

1

이 작업을 수행하는 적절한 방법은 깨끗하게 매개 변수를 해결하기 위해 @RequestMapping 주석 처리기 메서드를 확장하는 사용자 정의 WebArgumentResolver을 사용하는 것입니다. 이 메커니즘을 사용하여 JPA 엔티티를 깔끔하게 병합하고이를 컨트롤러에 전달했습니다.

herehere 또는 Google에 대한 예를 볼 수 있습니다. 자세한 내용은 많습니다.

+0

좋은 감사합니다! 이것은 'ready to use'args를 전달함으로써 대부분의 '문제'를 해결할 것입니다 ... '요청 전처리'를 완료하는 다른 부분은 인증되지 않은 사용자의 로그인 페이지로 리디렉션됩니다. 그 어떤 해결책이라도? – ApollonDigital

+0

정확한 요구 사항에 따라 서블릿 필터 또는 스프링 인터셉터를 사용하는 것이 좋을 것입니다. 이는 여기에서 설명한 것과 완전히 별개입니다. 그것들은 내 마음 속에서 정말로 뚜렷한 질문 들이며, 각각은 서로 다른 기술을 사용하여 해결합니다. 개인적으로 인증을 위해서 나는 그것을 사용하지 않을 강력한 이유가 없다면 Spring Security를 ​​선호하는 경향이 있습니다. –

+0

나는 배울 게 많을 것 같아. 봄 보안, 서블릿 필터와 인터셉터에 대한 좋은 링크는 고맙게 여기겠다. – ApollonDigital

관련 문제