0
我已經使用Spring Boot和由AngularJS提供支持的單頁面應用程序創建了REST API。如何從基於AngularJS的前端安全地與REST API後端進行通信
問題是如何防止每個人都使用我的REST API,這是在互聯網上公開的?我希望它只能在我的網頁上使用。
我無法使用角度方面的任何密碼/密碼/令牌,因爲它對任何人都是可見的。
我已經使用Spring Boot和由AngularJS提供支持的單頁面應用程序創建了REST API。如何從基於AngularJS的前端安全地與REST API後端進行通信
問題是如何防止每個人都使用我的REST API,這是在互聯網上公開的?我希望它只能在我的網頁上使用。
我無法使用角度方面的任何密碼/密碼/令牌,因爲它對任何人都是可見的。
春季安全可以幫助解決這個問題。您可以定義一些只能由某些具有特定角色的用戶訪問的網址。
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
protected void configures(HttpSecurity http) throws Exception {
http.exceptionHandling()
.accessDeniedPage("/error").and()
.authorizeRequests()
.antMatchers("/api/**").hasAnyRole("USER_ROLE");
}
}
因此,只有具有「USER_ROLE」角色的人才能訪問任何以「/ api」開頭的網址。 爲了實現此功能,您必須實現一個登錄系統,在登錄成功後爲用戶分配「USER_ROLE」。
在AngularJs上,它很容易。您只需向REST api發出一個http請求,因爲瀏覽器持有cookie和JSESSIONID,它將在頭部與請求一起發送。 Spring選取它並檢查具有該JSESSIONID的用戶是否有權訪問該URL。
我只是想幫忙:[也許這個鏈接給你相關信息](https://stackoverflow.com/questions/24617452/only-allowing-certain-websites-access-php-api) –