package com.imooc.activitiweb.security; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; import org.springframework.security.web.DefaultRedirectStrategy; import org.springframework.security.web.RedirectStrategy; import org.springframework.security.web.savedrequest.HttpSessionRequestCache; import org.springframework.security.web.savedrequest.RequestCache; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @RestController public class ActivitiSecurityController { private Logger logger = LoggerFactory.getLogger(getClass()); private RequestCache requestCache = new HttpSessionRequestCache(); private RedirectStrategy redirectStrategy = new DefaultRedirectStrategy(); //估计是在springSecurity登录验证之后,对未登录用户跳转行为进行的判断。 @RequestMapping("/login") @ResponseStatus(code = HttpStatus.UNAUTHORIZED) public SimpleResponse requireAuthentication(HttpServletRequest request, HttpServletResponse response) { /*SavedRequest savedRequest = requestCache.getRequest(request,response); if(savedRequest != null){ String targetUrl = savedRequest.getRedirectUrl(); logger.info("引发跳转的请求是:"+targetUrl); if(StringUtils.endsWithIgnoreCase(targetUrl,".html")){ try { redirectStrategy.sendRedirect(request, response, "/demo-login.html"); } catch(Exception e) { } } }*/ return new SimpleResponse("需要登录,使用/demo-login.html或发起post求情"); } }