次のようなコードで使用するために、Errai サービス実装 (サーバー側) に HttpServletRequest を注入する方法:
@Override
public void login(String username, String password, boolean rememberMe) {
try {
HttpServletRequest request = null; // <---- Inject here...
String host = request.getRemoteHost();
UsernamePasswordToken token = new UsernamePasswordToken(username, password, rememberMe, host);
try {
Subject subject = SecurityUtils.getSubject();
loginWithNewSession(token, subject);
subject.login(token);
} catch (AuthenticationException e) {
throw new IllegalArgumentException("Service could not authenticate caller with the given authorization credentials.");
}
} catch (Exception e) {
e.printStackTrace();
throw new IllegalArgumentException("Something went wrong with the login request");
}
}