Я реализовал простой фильтр, который просто добавляет два Принципа к текущей сессии (см. DoFilter ниже).Моя проблема в том, что это происходит, когда я запрашиваю ресурс, но тогда я никогда не смогу увидеть ресурс, потому что появляется экран входа в систему на основе FORM.Я пытаюсь обойти вход в систему на основе формы с помощью этого конкретного фильтра (в конечном итоге используя маркер быстрого истечения срока действия), хотя, похоже, ничто не позволяет мне сделать это.
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest httprequest = (HttpServletRequest)request;
HttpServletResponse httpresponse = (HttpServletResponse)response;
HttpSession session = httprequest.getSession(true);
Subject subject = (Subject)session.getAttribute("javax.security.auth.subject");
if (subject == null){
subject = new Subject();
PlainUserPrincipal user = new PlainUserPrincipal("admin");
PlainRolePrincipal role = new PlainRolePrincipal("admin");
subject.getPrincipals().add(user);
subject.getPrincipals().add(role);
}
chain.doFilter(httprequest, httpresponse);
}