Spring Security - 保护REST API

时间:2016-01-26 14:22:21

标签: spring api rest security authentication

我正在使用Spring Security来保护REST API。 我使用自定义过滤器来检查请求是否在标头中包含有效的JWT令牌。如果请求包含有效令牌,则会将一个身份验证对象添加到安全上下文中,否则我会将null添加到安全上下文中。

我还定义了一个AuthenticationEntryPoint,当出现身份验证异常时,它只返回401。

在我的安全xml中,我定义了一系列拦截网址。其中一些访问设置为“isAuthenticated()”,一些访问设置为“permitAll”。

当我向访问权限设置为“isAuthenticated()”的URL发出请求时,标题中包含有效的JWT令牌,这样可以正常工作。但是,当我向没有令牌的请求发出访问权限设置为'permitAll'的URL时,会抛出异常并返回401。

我想要实现的是仅当未经身份验证的请求尝试访问访问权限设置为“isAuthenticated()”的URL时才会生成401响应。当请求访问权限设置为'permitAll'的URL时,我不希望返回401,无论请求是否经过身份验证。

0 个答案:

没有答案