내 응용 프로그램에서 인증 체계는 사용자와 역할을 기반으로합니다. 특정 역할을 가진 사용자는 특정 작업 방법에 액세스 할 수 있습니다.
이것을 구현하기 위해 다음을 수행했습니다.
1. 사용자 지정 작업 작성
public class Authorization extends play.mvc.Action.Simple {
public Promise<Result> call(Context ctx) throws Throwable {
//check access
return delegate.call(ctx);
}
}
2. 동작으로 컨트롤러에 주석 달기
@With(actions.Authorization.class)
public class Upload extends Controller {
....
}
내 작업에서 세션에있는 사용자에게 액세스 할 수 있습니다. 사용자를 인증 할 수 있도록 현재 컨트롤러와 동작을 얻고 싶습니다. 이것에 대한 방법이 있습니까?
매개 변수를 사용하여 사용자 지정 주석을 만들고 각 컨트롤러에서 작업을 식별하기 위해 매개 변수를 전달하는 방법을 읽었습니다. 그러나 실수로 복사 붙여 넣기 중에 잘못된 작업 이름을 쓰면 많은 작업과 오류가 발생하기 쉬운 것 같습니다.
감사
사용 context.request().path()
된 경로로 문자열을 가져 오는 데 사용할 수 있습니다 . 여기에는 쿼리 매개 변수가 포함되지 않으므로 원하는 경우 동일한 개체의 getQueryParameter
또는 uri
(전체 URL) 메서드를 사용할 수 있습니다 .
이보다 더 많은 정보가 필요하면을 사용할 수 있습니다 context.args
. 그러면 다음 키가 포함 된 맵이 제공됩니다 (최소 Play 2.2에서).
ROUTE_VERB -> The HTTP verb used (ex: GET)
ROUTE_ACTION_METHOD -> The method called (ex: getUserFavorites)
ROUTE_CONTROLLER -> Controller class (ex: controllers.api.UsersController)
ROUTE_COMMENTS -> ???
ROUTE_PATTERN -> THE URL used (ex: users/favorites)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다