java Spring安全Oauth2:在Tomcat中成功注销,但在Glashfish中无法注销
我只是春季安全Oauth2的初学者。 我有授权服务器和资源服务器(分开)。 我使用的流程是授权代码。我成功登录到授权服务器,获取代码,然后获取accessToken。 然后,我想注销时出现问题。当我在ApacheTomcat中部署授权服务器时,它可以调用'j_spring_security_logout',但当我在Glashfish中部署时,它不能
这里是我的安全配置:
protected void configure(HttpSecurity http) throws Exception {
http.sessionManagement().maximumSessions(1).maxSessionsPreventsLogin(false);
http.authorizeRequests().antMatchers(HttpMethod.OPTIONS, "/oauth/token").permitAll().and()
.authorizeRequests()
.antMatchers("/login.jsp").permitAll()
.and()
.formLogin()
.loginPage("/login.jsp")
.loginProcessingUrl("/j_spring_security_check")
.usernameParameter("j_username")
.passwordParameter("j_password")
.and()
.logout()
.invalidateHttpSession(true)
.deleteCookies("JSESSIONID")
.logoutUrl("/j_spring_security_logout")
.logoutSuccessHandler(logoutHandler);
}
这是我的logouthandler:
public void onLogoutSuccess(HttpServletRequest req, HttpServletResponse res, Authentication a) throws IOException, ServletException {
String token=req.getParameter("token");
if(token != null){
consumerTokenServices.revokeToken(token);
}
String redirect = req.getParameter("redirect");
if(redirect != null){
res.sendRedirect(redirect);
}
}
共 (0) 个答案