GWTP 网守
GWTP Gatekeeper
我从 GWTP 做了一些例子
http://blog.arcbees.com/2015/10/27/gwtp-beginners-tutorial-toaster-launcher-part-2/#Gatekeeper
@DefaultGatekeeper
public class LoggedInGatekeeper implements Gatekeeper {
private CurrentUser currentUser;
@Inject
public LoggedInGatekeeper(CurrentUser currentUser) {
this.currentUser = currentUser;
}
@Override
public boolean canReveal() {
return currentUser.isLoggedIn();
}
}
如果用户已登录,我们在这里授予访问权限。
是否可以找出要经过哪个页面(NameToken)?以及是否给他权限,取决于权限
当然,只需将 PlaceManager
注入您的 LoggedInGatekeeper
并调用 getCurrentPlaceRequest,然后将其与您的 NameToken
进行比较。沿着这些线的东西:
@DefaultGatekeeper
public class LoggedInGatekeeper implements Gatekeeper {
private CurrentUser currentUser;
private PlaceManager placeManager;
@Inject
public LoggedInGatekeeper(CurrentUser currentUser, PlaceManager placeManager) {
this.currentUser = currentUser;
this.placeManager = placeManager;
}
@Override
public boolean canReveal() {
PlaceRequest request = placeManager.getCurrentPlaceRequest();
if (request.hasSameNameToken('someNameToken') {
return currentUser.isLoggedIn();
}
return true;
}
}
我从 GWTP 做了一些例子
http://blog.arcbees.com/2015/10/27/gwtp-beginners-tutorial-toaster-launcher-part-2/#Gatekeeper
@DefaultGatekeeper
public class LoggedInGatekeeper implements Gatekeeper {
private CurrentUser currentUser;
@Inject
public LoggedInGatekeeper(CurrentUser currentUser) {
this.currentUser = currentUser;
}
@Override
public boolean canReveal() {
return currentUser.isLoggedIn();
}
}
如果用户已登录,我们在这里授予访问权限。
是否可以找出要经过哪个页面(NameToken)?以及是否给他权限,取决于权限
当然,只需将 PlaceManager
注入您的 LoggedInGatekeeper
并调用 getCurrentPlaceRequest,然后将其与您的 NameToken
进行比较。沿着这些线的东西:
@DefaultGatekeeper
public class LoggedInGatekeeper implements Gatekeeper {
private CurrentUser currentUser;
private PlaceManager placeManager;
@Inject
public LoggedInGatekeeper(CurrentUser currentUser, PlaceManager placeManager) {
this.currentUser = currentUser;
this.placeManager = placeManager;
}
@Override
public boolean canReveal() {
PlaceRequest request = placeManager.getCurrentPlaceRequest();
if (request.hasSameNameToken('someNameToken') {
return currentUser.isLoggedIn();
}
return true;
}
}