spring security插件--获取 登录前被拦截的URL
2013-07-09 12:41
344 查看
在web项目中,登录某些页面 需要登录权限,有些是由插件拦截,有的是自己手动写的判断代码在spring securrity中,会有映射的权限访问URL,如果在没有登录情况下 访问这些URL会被插件拦截器自动拦截,那么怎样获取当前被拦截的URL,用来实现跳转?1.一般实现 登录前的跳转---将登录前访问的URL放入session,登录成功后取出该URL,再删除改属性
2.如果是spring security等安全插件拦截的URL,该如何获取被拦截的URL?
-----这里以AJAX请求登录为例
request.getHeader("referer")//获取登录访问前的URL
2.如果是spring security等安全插件拦截的URL,该如何获取被拦截的URL?
-----这里以AJAX请求登录为例
public class AjaxAwareAuthenticationEntryPoint extends LoginUrlAuthenticationEntryPoint { private String ajaxLoginFormUrl; @Override protected String determineUrlToUseForThisRequest(final HttpServletRequest request, final HttpServletResponse response, final AuthenticationException e) { if (ajaxLoginFormUrl != null && SpringSecurityUtils.isAjax(request)) { return ajaxLoginFormUrl; } try{ //设置 session属性--登录成功后要 要跳转的URL request.getSession().setAttribute("back",buildHttpReturnUrlForRequest(request)); }catch(Exception ex){ } return getLoginFormUrl(); } //获取 当前被 (登录前)被拦截的URL protected String buildHttpReturnUrlForRequest(HttpServletRequest request) throws IOException, ServletException { RedirectUrlBuilder urlBuilder = new RedirectUrlBuilder(); urlBuilder.setScheme("http"); urlBuilder.setServerName(request.getServerName()); urlBuilder.setPort(request.getServerPort()); urlBuilder.setContextPath(request.getContextPath()); urlBuilder.setServletPath(request.getServletPath()); urlBuilder.setPathInfo(request.getPathInfo()); urlBuilder.setQuery(request.getQueryString()); return urlBuilder.getUrl(); } /** * Dependency injection for the Ajax login form url, e.g. '/login/authAjax'. * @param url the url */ public void setAjaxLoginFormUrl(final String url) { Assert.isTrue(url == null || url.startsWith("/"), "ajaxLoginFormUrl must begin with '/'"); ajaxLoginFormUrl = url; } }
相关文章推荐
- Openfire 自定义Servlet插件访问Url登录拦截问题(源码方式)
- 页面获取Spring Security登录用户
- 一个angular版的url中获取参数的插件
- 关于spring-security登录后重定向至拦截前访问的url的实现原理
- 用cordova插件实现ionic第三方登录,获取信息和分享
- yii2获取登录前的页面url地址--电脑和微信浏览器上的实现以及yii2相关源码的学习
- jQuery插件—获取URL参数
- jQuery插件---获取URL参数(jQuery.query)
- jQuery插件—获取URL参数
- 页面获取Spring Security登录用户
- shiro获取登录前被拦截地址 (个人备份)
- jQuery插件---获取URL参数
- JQuery插件获取URL插件
- spring security获取所有登录的用户信息
- Spring security 获取当前用户的登录信息
- 转:jQuery插件—获取URL参数
- 获取当前登录页面的url
- IE拦截URL小插件---TamperIE
- 单点登录 - 关于CAS客户端的拦截请求和忽略/排除不需要拦截的请求URL的问题
- Spring security 获取当前用户的登录信息