@JonSampson Я редактировал код. Но я не могу войти в класс фильтра. Можете ли вы, пожалуйста, дать мне понять, где это пошло не так.
отаю над приложением Spring MVC И мы используем Spring Security.
Теперь у меня есть требование, что, как только я вхожу в приложение, должно отображаться всплывающее окно. Таким образом, приложение может войти непосредственно на домашнюю страницу, на страницу его профиля или в любой другой поток в приложении. Но мне нужно показать всплывающее окно независимо от того, куда входит пользователь.
Как мне добиться этого с помощью Spring Security или любой другой альтернативы, пожалуйста?
Я пытался: config.xml:
<bean id="popUpFilter" class="myPackage.security.popUpClass" />
<security:http entry-point-ref="myAppAuthEntryPoint" use-expressions="true">
.............
<security:custom-filter after="LOGIN_FILTER" ref="popUpFilter"/>
</security:http>
И мой код:
public class popUpClass implements AuthenticationSuccessHandler {
private static final Logger log = LoggerFactory.getLogger(popUpClass.class);
@Override
public void onAuthenticationSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException {
//do some logic here if you want something to be done whenever
//the user successfully logs in.
log.debug("Entered into customfilter");
HttpSession session = httpServletRequest.getSession();
User user = SecurityClass.getUserDetails();
session.setAttribute("id", user.ID());
session.setAttribute("state", user.State());
//set our response to OK status
httpServletResponse.setStatus(HttpServletResponse.SC_OK);
//since we have created our custom success handler, its up to us to where
//we will redirect the user after successfully login
httpServletResponse.sendRedirect("home");
}
}
ПРИМЕЧАНИЕ. Всплывающее окно должно появляться только один раз после входа пользователя.