带有Java配置的Rest API的Spring Security HTTP基本身份验证

托德

我正在尝试通过Spring安全性来保护基于CXF的rest API。尽管我的配置在技术上可行,但我似乎无法使API响应401,而不是响应401上的HTML消息。基于其他一些SO帖子,我使用groovy将以下java配置整合到了Spring安全配置中:

@Configuration
@EnableWebSecurity
@Slf4j
class SecurityConfig extends WebSecurityConfigurerAdapter {

    protected void configure(HttpSecurity http) {
        http.antMatcher('/api/**')
                .authorizeRequests()
                .antMatchers('/api/admin/**').hasRole('ADMIN')
                .antMatchers('/api/**').hasRole('USER')
                .and()
                .httpBasic()
                .and()
                .addFilterBefore(
                    new BasicAuthenticationFilter(authenticationManager: authenticationManager(), authenticationEntryPoint: new BasicJsonEntryPoint(realmName: 'Local')),
                    BasicAuthenticationFilter.class
                )
    }

    static class BasicJsonEntryPoint extends BasicAuthenticationEntryPoint {

        @Override
        public void commence(HttpServletRequest req, HttpServletResponse response, AuthenticationException e) throws IOException, ServletException {
            log.debug 'Handling response'
            response.addHeader HttpHeaders.WWW_AUTHENTICATE, /Basic realm="${getRealmName()}"/
            response.setStatus HttpStatus.UNAUTHORIZED.value()
            response.getWriter().println([status: HttpStatus.UNAUTHORIZED.value(), message: e.getMessage()].toJson())
        }
    }
}

我已经尝试了这种通用方法的多种变体,但是无论我从API获得HTML为何。请参阅以下要求/要求:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
        <title>Error 401 Full authentication is required to access this resource</title>
    </head>
    <body>
        <h2>HTTP ERROR 401</h2>
        <p>Problem accessing /api/test. Reason:

            <pre>    Full authentication is required to access this resource</pre>
        </p>
        <hr />
        <i>
            <small>Powered by Jetty://</small>
        </i>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
    </body>
</html>
鲍勃·库克

我只是在猜测,但是有时当您的应用程序发出200s以外的http响应代码时,Jetty会有所帮助。我的建议是您在web.xml中添加一些逻辑以缩短Jetty的帮助。使我的应用程序摆脱类似问题的完整技术记录在:如何抑制Jetty 8的默认ErrorHandler?

祝好运。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Spring MVC REST + Spring Security +基本身份验证

来自分类Dev

Spring Security基本身份验证始终导致404

来自分类Dev

Spring Security-基本身份验证

来自分类Dev

在Spring Security中接收令牌的基本身份验证

来自分类Dev

在Spring Security中接收令牌的基本身份验证

来自分类Dev

Spring Security 条件基本身份验证

来自分类常见问题

使用spring restTemplate的REST API的基本身份验证

来自分类Dev

在某些REST API上有选择地启用HTTP基本身份验证

来自分类Dev

使用HTTP基本身份验证的python flask REST API的安全性

来自分类Dev

用于REST API的SSL上的HTTP基本身份验证

来自分类Dev

具有Swashbuckle API文档的HTTP基本身份验证

来自分类Dev

JIRA REST API-基本身份验证

来自分类Dev

JIRA REST API-基本身份验证

来自分类Dev

基本身份验证 Kibana REST API

来自分类Dev

Spring Security缓存基本身份验证?不验证后续请求

来自分类Dev

Spring Security缓存基本身份验证?不验证后续请求

来自分类Dev

如何将带有 HTTP 基本身份验证的 curl 请求转换为 Spring RestTemplate 请求?

来自分类Dev

Spring Boot + Spring Security:如何取消基本身份验证表单

来自分类Dev

Spring Security基本身份验证仅发生一次

来自分类Dev

用于Hawtio的基本身份验证的Spring Security 4.x JavaConfig

来自分类Dev

无法使用 Spring Boot REST API 设置基本身份验证

来自分类Dev

Spring Boot Resttemplate HTTP POST 具有基本身份验证和自定义对象

来自分类Dev

Spring Security Rest Basic身份验证

来自分类Dev

具有基本身份验证的安全Spring Boot REST应用

来自分类Dev

带有pinnaclesports API的Python 3基本身份验证

来自分类Dev

使用HTTP基本身份验证保护API

来自分类Dev

如何从具有基本身份验证的rest api获取数据?

来自分类Dev

如何在Rest API中验证/检查基本身份验证标头

来自分类Dev

无法使用WP REST API 2.0插件通过基本身份验证进行身份验证

Related 相关文章

  1. 1

    Spring MVC REST + Spring Security +基本身份验证

  2. 2

    Spring Security基本身份验证始终导致404

  3. 3

    Spring Security-基本身份验证

  4. 4

    在Spring Security中接收令牌的基本身份验证

  5. 5

    在Spring Security中接收令牌的基本身份验证

  6. 6

    Spring Security 条件基本身份验证

  7. 7

    使用spring restTemplate的REST API的基本身份验证

  8. 8

    在某些REST API上有选择地启用HTTP基本身份验证

  9. 9

    使用HTTP基本身份验证的python flask REST API的安全性

  10. 10

    用于REST API的SSL上的HTTP基本身份验证

  11. 11

    具有Swashbuckle API文档的HTTP基本身份验证

  12. 12

    JIRA REST API-基本身份验证

  13. 13

    JIRA REST API-基本身份验证

  14. 14

    基本身份验证 Kibana REST API

  15. 15

    Spring Security缓存基本身份验证?不验证后续请求

  16. 16

    Spring Security缓存基本身份验证?不验证后续请求

  17. 17

    如何将带有 HTTP 基本身份验证的 curl 请求转换为 Spring RestTemplate 请求?

  18. 18

    Spring Boot + Spring Security:如何取消基本身份验证表单

  19. 19

    Spring Security基本身份验证仅发生一次

  20. 20

    用于Hawtio的基本身份验证的Spring Security 4.x JavaConfig

  21. 21

    无法使用 Spring Boot REST API 设置基本身份验证

  22. 22

    Spring Boot Resttemplate HTTP POST 具有基本身份验证和自定义对象

  23. 23

    Spring Security Rest Basic身份验证

  24. 24

    具有基本身份验证的安全Spring Boot REST应用

  25. 25

    带有pinnaclesports API的Python 3基本身份验证

  26. 26

    使用HTTP基本身份验证保护API

  27. 27

    如何从具有基本身份验证的rest api获取数据?

  28. 28

    如何在Rest API中验证/检查基本身份验证标头

  29. 29

    无法使用WP REST API 2.0插件通过基本身份验证进行身份验证

热门标签

归档