Я пытаюсь реализовать собственный фильтр проверки подлинности в Guice. Я получаю токен, получаю имя пользователя и область из токена, а затем создаю Принципала. Теперь я застрял, и я не знаю, как установить Принципала. Было бы неплохо, если бы я мог просто установить его так: request.setUserPrincipal(principal);
, но, очевидно, я не могу.Создать принципала в Guice Filter
Как это сделать?
методМоего doFilter выглядит следующим образом:
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
String authorizationHeader = request.getHeader(HttpHeaders.AUTHORIZATION);
if (authorizationHeader != null && authorizationHeader.length() > 0) {
String token = authorizationHeader.substring("Bearer".length()).trim();
if (token.length() > 0) {
try {
Credentials credentials = securityService.getCredentials(token);
String username = credentials.getUsername();
String realm = credentials.getRealm();
Principal principal = new HttpPrincipal(username, realm);
// request.setUserPrincipal(principal);
LOGGER.info(credentials);
} catch (Exception e) {
LOGGER.error(e);
}
}
}
filterChain.doFilter(servletRequest, servletResponse);
}