【问题标题】:Spring security oauth2 server - intercept unauthorized denied accessSpring security oauth2 server - 拦截未经授权的拒绝访问
【发布时间】:2018-04-27 03:23:45
【问题描述】:

我想拦截来自 spring cloud oauth2 授权服务器的访问被拒绝响应:

<oauth>
<error_description>
Full authentication is required to access this resource
</error_description>
<error>unauthorized</error>
</oauth>

我想拦截异常并做一些自定义重定向或显示自定义页面。

关于如何做到这一点的任何提示?

提前致谢。

【问题讨论】:

    标签: spring oauth-2.0 cloud spring-cloud spring-security-oauth2


    【解决方案1】:

    最终通过扩展 ResourceServerConfigurerAdapter 并使用以下附加代码覆盖 configure(http) 方法解决了这个问题:

    ...
    http.exceptionHandling().authenticationEntryPoint(unauthorizedEntryPoint());
    ...
    
    @Bean
        public AuthenticationEntryPoint unauthorizedEntryPoint() {
    
            return (request, response, authException) -> {
                LOGGER.info("\n!!!!!!!! unauthorized: {} !!!!!!!!!!!!", authException.getMessage());
                String uri = request.getContextPath() + "/login";
                if(loadBalancerClient!=null && loadBalancerClient.choose("API-GATEWAY") != null) {
                    uri = loadBalancerClient.choose("API-GATEWAY").getUri().toString();
                }
                response.sendRedirect(uri);
            };
        }
    

    【讨论】:

      猜你喜欢
      • 2020-04-26
      • 2016-09-29
      • 2021-02-02
      • 2020-12-19
      • 1970-01-01
      • 2019-08-09
      • 2011-04-21
      • 2020-04-05
      • 1970-01-01
      相关资源
      最近更新 更多