Ich habe eine Spring Boot App erstellt und ich habe meine Front-End-App im Ordner /resources/static
.Sichere eine Angular JS App mit Spring Security
Für das Routing verwende ich Angular JS UI Router-Bibliothek. Ich habe eine Route definiert, auf die ich nur vom Administrator zugreifen möchte, und jetzt versuche ich, sie mit Spring Security zu sichern.
Hier ist meine WebSecurity Konfigurationsklasse:
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER").and()
.withUser("admin").password("password").roles("USER", "ADMIN");
}
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity
.authorizeRequests()
.antMatchers(HttpMethod.GET, "/#/admin").hasRole("ADMIN")
.and()
.formLogin()
.and()
.authorizeRequests()
.antMatchers(HttpMethod.POST, "/member", "/member/**").permitAll()
.antMatchers(
HttpMethod.GET,
"/",
"/*.html",
"/favicon.ico",
"/**/*.html",
"/**/*.css",
"/**/*.js",
"/**/**/*.css",
"/**/**/*.js",
"/**/**/*.html",
"/**/**/**/*.css",
"/**/**/**/*.js",
"/**/**/**/*.html",
"/**/**/**/**/*.css",
"/**/**/**/**/*.js"
).permitAll()
.antMatchers("/auth/**", "/member/**", "/account/**").permitAll()
.and()
.csrf().disable();
}
}
Der Weg, den ich zu sichern versuche kann durch http://localhost:8080/#/admin zugegriffen werden.
Wenn ich jedoch auf diese Route zugreife, wird keine Anmeldung angefordert und die Seite kann von jedem eingesehen werden.
Ist es da ein anderer Ansatz, dem ich folgen sollte?
Das funktionierte, aber jetzt sollte ich mich anmelden, um Zugriff auf alle Endpunkte zu haben, obwohl sie vorher verfügbar waren –