我有弹簧安全的spring web应用程序,我使用rest服务来访问数据。我有两个问题。
首先,我无法使spring安全性允许我发送POST http请求并向数据库添加内容。我试图允许此请求,但Spring安全仍然拒绝访问。
http.authorizeRequests().antMatchers("/services/rest/registerUser").permitAll();
第二个问题,确保休息服务的最佳做法是什么?我绝对不想让某人通过休息服务将数据发送到数据库。那么允许在我的应用程序内使用服务并限制其他所有休息请求的最佳方法是什么?
您可以在configure(WebSecurity web)
中使用重载的WebSecurityConfigurerAdapter
方法,具体如下:
public void configure(WebSecurity web) {
web.ignoring().antMatchers("/services/rest/registerUser");
}
此外,如果您允许从放置REST Api的主机以外的主机访问REST Api,则需要使用Cors Headers。
确保休息服务的最佳做法是什么?我绝对不想让某人通过休息服务将数据发送到数据库。那么允许在我的应用程序内使用服务并限制其他所有休息请求的最佳方法是什么?
保护REST Apis的最广泛使用和安全的方法是使用OAuth2。您可以使用Spring Security OAuth2项目来实现此目的。
另一种方法是使用JWT令牌,也可以使用Spring Security和一些代码来实现。