如何使用Spring安全性对REST API执行SSO?

时间:2016-06-21 14:11:41

标签: spring-security spring-boot spring-4

我有一个由NGINX服务器,前端服务器和后端服务器组成的应用程序。

NGINX和前端处理登录(我现在必须使用的一些遗留代码),并且成功完成。

我需要使用Spring Security对RESTfull API进行SSO。 API在嵌入式tomcat 8服务器上的Spring-boot应用程序中运行。

spring-security版本是4.0.3,spring-boot版本是1.3.3。

我开始时:

@Configuration
@EnableWebSecurity()
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                .anyRequest().permitAll();
    }
}

现在我从API获得了401(未经授权),查看遗留代码并咨询其他开发人员(我是组织的新手),我可以看到使用他们使用的XML配置时:

<authentication-manager alias="authenticationManager"/>

因此,身份验证管理器只传递请求(并且他们在过滤器中执行其余的验证)。

我想做类似的事情,或在此阶段添加标题中存在的数据验证,但我找不到一个明确的文档,不适用于XML配置。

我认为这可能等同于遗留系统中使用的XML代码,但它不起作用:

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.parentAuthenticationManager(authentication -> {
        authentication.setAuthenticated(true);
        return authentication;
    });
}

我正在寻找对我的想法或其他方法的修正。

1 个答案:

答案 0 :(得分:0)

显然我遇到了上下文问题,没有身份验证管理器配置