Spring 安息 API

Spring Security in Rest API

我在为我们的 REST 选择安全类型时遇到问题 API。首先我描述一个问题。有一个应用程序将使用此 REST API。此应用程序有前端和后端。它使用库 spring-security-oauth2 和 spring-boot-starter-security 实现 spring 安全性。它使用 JWT 并将在 AWS 上。它将使用来自 AWS 的令牌。此应用程序将使用从另一个数据库中提取数据的休息服务。

我想在 REST API spring security oauth2 和 JWT 中使用,但是这个 REST API 将部署在旧的 JBOSS 4.2 和 JAVA 1.5(不幸的是,java 1.5 无法更改,这是我得到的限制)。 Spring security oauth2 我查的是1.6及以上版本。我的问题是,有人可以建议我出于安全目的在 REST API 中使用什么吗?

将来这个 REST API 可以被不同的应用程序使用。我想使用比基本身份验证更安全的东西。我搜索了解决方案,但没有找到任何有意义和有用的东西。我想征求谁使用 spring 安全性的意见。

编辑:
我决定使用内存用户和密码保留的基本身份验证。我在实现中添加了两个 classes:

@Configuration
@EnableWebSecurity
public class SecurityConfiration extends WebSecurityConfigurerAdapter {

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth
                .inMemoryAuthentication()
                .withUser("user").password("password").roles("USER");
    }

    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .anyRequest().authenticated()
                .and()
                .httpBasic();
    }
}

第二个class:

public class SecurityApplicationInitializer extends AbstractSecurityWebApplicationInitializer {

    public SecurityApplicationInitializer() {
        super(SecurityConfiration.class);
    }
}

基本上就是这样。它不起作用。调用 rest api 工作正常并且结果正在显示。 401 不工作。我是不是忘记了什么?此外,我不想使用重定向登录或显示 window 凭据进入。我想发送 body 或 header 带有错误或消息的信息。我可以覆盖某些东西来做到这一点吗?

环境:部署在 Jboss 4.2 (Java 1.5) 和 Spring Security 3.2.10.

这可能不是您正在寻找的答案,但这里是建议:

不要局限于思考"what kind of framework should I use"。最后剩下的是关于 http 并且完全不知道 spring(-security) 或 java,它只是传递带有 headers 的请求,其中包含一些授权令牌。

在正常情况下,不鼓励自定义 oauth(2) 实现,但在某些限制下,如 Java 1.5 可能是唯一的选择。或者根据情况(非关键资源、内部 vpn)一些简单的基于令牌的授权可能就足够了。