2012-11-05 3 views
0

사용자를 로그인하기 전에 세션을 확인해야합니다. 각 URL 요청은 이 유효한 세션인지 여부를 확인합니다. 그렇지 않은 경우 로그인 페이지로 보내고 정상적으로 처리합니다. 사용자가 이미 활성 세션을 가지고있는 경우 은 로그인 페이지를 표시하지 않고 미리 정의 된 기본 페이지로 이동합니다.@before annotation in 연 1.2.5를 사용 하시겠습니까?

Google에서 검색 한 결과 컨트롤러에서 @Before annotaion을 사용하여 완료되지만 사용 방법 및 사용 방법은 모르겠다는 것을 알게 되셨습니까? 나는 1.2.5를 사용하고있다.

답변

2

Play 보안 모듈은 기본적으로 그대로 사용합니다. 대부분의 응용 프로그램에서 사용되며 다른 플러그인과도 통합됩니다. 문서 here을 확인하십시오.

여전히 구현하려는 경우 보안 코드를 예로 사용할 수 있습니다.

그렇지 않으면 @Before은 컨트롤러 정적 메서드에서 사용할 수 있으며 세션을 포함한 모든 범위 개체에 액세스 할 수 있습니다.

@Before 
static void addUser() { 
    User user = connected(); 
    if(user != null) { 
     renderArgs.put("user", user); 
    } 
} 

static User connected() { 
    if(renderArgs.get("user") != null) { 
     return renderArgs.get("user", User.class); 
    } 
    // Find your user from session 
    String username = session.get("user"); 
    if(username != null) { 
     return User.find("byUsername", username).first(); 
    } 
    return null; 
} 

// ~~render your login if the user is not finded in session 

public static void index() { 
    if(connected() != null) { 
     render(); 
    } 
    login(); 
} 

당신은 YOUR_PLAY_DIR/샘플 - 앤 - 시험/예약이 샘플 코드를 찾을 수 있습니다

4

당신은 @Before이 방법을 사용할 수 있습니다.

마찬가지로 @ emt14는 Play 보안 모듈을 사용하면 더 쉽게 수행 할 수 있습니다. YOUR_PLAY_DIR/samples-and-tests/forum에서 포럼 앱 샘플을 확인하십시오.