SecureSocial モジュールを実装し、それを介してログインを提供しています。さまざまなユーザーに対して、メインコントローラーアプリケーションでログインがチェックされた後、さまざまなロールとリダイレクトをマップしました。
public class Application extends Controller {
/**
* This action only gets called if the user is logged in.
*
* @return
*/
@SecureSocial.SecuredAction
public static Result index() {
User currentUser = User.findByEmail(SecureSocial.currentUser().id().id());
List<UserRole> userRoles = currentUser.getUserRoles();
for(UserRole ur : userRoles) {
if(ur.getRole().equals(RoleEnum.ROLE_EMPLOYEE)) {
return ok(..);
}
return ok(home.render());
}
これによると、ロール ROLE_EMPLOYEE に対して一部のページが拒否されます。ただし、ログアウトすると、最後の URL が PLAY_SESSION Cookie に保存され、以前の役割のユーザーでログインした後、アプリケーションは自動的に間違ったページにリダイレクトされます。それをどうするかについてのアイデアはありますか?