spring boot 重定向到页面登录
Posted
技术标签:
【中文标题】spring boot 重定向到页面登录【英文标题】:spring boot redirect to page login 【发布时间】:2016-09-12 01:35:36 【问题描述】:我有一个使用 spring boot 和 angularjs 开发的应用程序, 我正在使用 spring security 来保护我的应用程序,但是 我不知道如何将任何成员重定向到页面 未连接时登录: 例如我有这个rest api:
http://localhost:8080/user
但是当我使用这个应用程序时,结果是
如何将我重定向到此页面
http://localhost:8080/app/login
【问题讨论】:
查看你的日志,因为你需要插入一个与spring security相关的密码,然后你就可以正常执行你的rest api了 感谢您的回复,但我的问题是如果我没有连接,如何将我重定向到localhost:8080/app/login 我告诉过你,因为我已经在 spring boot 和安全方面遇到了同样的问题,所以我必须从日志中设置密码,一个自动生成的 20-24 个字符的密码,然后我能够与应用程序正常工作并将被重定向。 使用这个解决方案解决了:@Override protected void configure(HttpSecurity http) throws Exception http.csrf().disable() .exceptionHandling().authenticationEntryPoint(new LoginUrlAuthenticationEntryPoint("/login")).accessDeniedPage("/accessDenied") .and() .authorizeRequests() ....
【参考方案1】:
private final RedirectStrategy redirectStrategy = new DefaultRedirectStrategy();
redirectStrategy.sendRedirect(request, response, "/login/");
【讨论】:
能否请您也添加解释? 当未经授权的用户试图进入应用程序时,Spring Security 应该抛出异常。配置的时候需要设置一个异常处理器来处理这些异常:java http.exceptionHandling().authenticationEntryPoint((request, response, e) -> if (request.getRequestURI().contains("api/")) response.sendError(HttpStatus.SC_UNAUTHORIZED); else redirectStrategy.sendRedirect(request, response, "/login/"); );
以上是关于spring boot 重定向到页面登录的主要内容,如果未能解决你的问题,请参考以下文章
执行登录保存请求后,Spring Boot Security POST 重定向到登录页面