Hallo zusammen,
ich habe Tabs welche mit new RouterLink navigieren.
In der Mainview hab ich
zb leitet es auf /useronly welches abgesichert ist siehe unten
Allerdings kann ich die Seite aufrufen, ohne dass ich ne Meldung bekomme "Access Denied". Lade ich die Seite dann neu oder steige über die URL ein, bekomme ich die gewünschte Access Denied Meldung. Also irgendwie wird die Seite da nicht neu geladen, was mach ich falsch? Login über Keycloak und alles klappt, nur die Navigation lädt die Seite quasi nicht neu wenn man sie aufruft somit wird die Authentifizierung / Autorisierung nicht geprüft
[CODE lang="java" title="SecurityConfig"]@KeycloakConfiguration
public class SecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(keycloakAuthenticationProvider());
}
@Bean
@Override
protected SessionAuthenticationStrategy sessionAuthenticationStrategy() {
return new RegisterSessionAuthenticationStrategy(new SessionRegistryImpl());
}
@Override
protected void configure(HttpSecurity http) throws Exception {
super.configure(http);
http.csrf().disable();
//http.formLogin().disable();
// http.anonymous().disable();
http
.authorizeRequests()
.antMatchers("/about").hasAnyRole("admin", "user")
.antMatchers("/useronly").hasRole("user")
.anyRequest().permitAll();
}
/**
* Allows access to static resources, bypassing Spring security.
*/
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers(
// Vaadin Flow static resources //
"/VAADIN/**",
// the standard favicon URI
"/favicon.ico",
// the robots exclusion standard
"/robots.txt",
// web application manifest //
"/manifest.webmanifest",
"/sw.js",
"/offline-page.html",
// (development mode) static resources //
"/frontend/**",
// (development mode) webjars //
"/webjars/**",
// (production mode) static resources //
"/frontend-es5/**", "/frontend-es6/**");
}
[/CODE]
[CODE lang="java" title="Useronly"]@Route(value = "useronly", layout = MainView.class)
@PageTitle("Useronly")
public class Useronly extends Div {
public Useronly() {
setId("about-view");
add(new Text("Userarea"));
}
}[/CODE]
ich habe Tabs welche mit new RouterLink navigieren.
In der Mainview hab ich
Java:
Tab tab = new Tab();
tab.add(new RouterLink("Userarea", UserOnly.class));
zb leitet es auf /useronly welches abgesichert ist siehe unten
Allerdings kann ich die Seite aufrufen, ohne dass ich ne Meldung bekomme "Access Denied". Lade ich die Seite dann neu oder steige über die URL ein, bekomme ich die gewünschte Access Denied Meldung. Also irgendwie wird die Seite da nicht neu geladen, was mach ich falsch? Login über Keycloak und alles klappt, nur die Navigation lädt die Seite quasi nicht neu wenn man sie aufruft somit wird die Authentifizierung / Autorisierung nicht geprüft
[CODE lang="java" title="SecurityConfig"]@KeycloakConfiguration
public class SecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(keycloakAuthenticationProvider());
}
@Bean
@Override
protected SessionAuthenticationStrategy sessionAuthenticationStrategy() {
return new RegisterSessionAuthenticationStrategy(new SessionRegistryImpl());
}
@Override
protected void configure(HttpSecurity http) throws Exception {
super.configure(http);
http.csrf().disable();
//http.formLogin().disable();
// http.anonymous().disable();
http
.authorizeRequests()
.antMatchers("/about").hasAnyRole("admin", "user")
.antMatchers("/useronly").hasRole("user")
.anyRequest().permitAll();
}
/**
* Allows access to static resources, bypassing Spring security.
*/
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers(
// Vaadin Flow static resources //
"/VAADIN/**",
// the standard favicon URI
"/favicon.ico",
// the robots exclusion standard
"/robots.txt",
// web application manifest //
"/manifest.webmanifest",
"/sw.js",
"/offline-page.html",
// (development mode) static resources //
"/frontend/**",
// (development mode) webjars //
"/webjars/**",
// (production mode) static resources //
"/frontend-es5/**", "/frontend-es6/**");
}
[/CODE]
[CODE lang="java" title="Useronly"]@Route(value = "useronly", layout = MainView.class)
@PageTitle("Useronly")
public class Useronly extends Div {
public Useronly() {
setId("about-view");
add(new Text("Userarea"));
}
}[/CODE]