要求を処理しません。ログインに成功する工程の後、私はこのリクエストURLにauthorizeRequests、バインド「v_main」役割の中で宣言しているページ/メイン/リストにユーザーをリダイレクトしています。しかし、私の設定の下に私が宣言しているページをACCESS_DENIEDに戻り宣言としてaccessDeniedPageWebSecurityConfigurerAdapterのcofigurationは、私がWebSecurityConfigurerAdapterを実装するクラスを宣言している正しく
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class AppSecurityConfig extends WebSecurityConfigurerAdapter {
protected static Logger log = Logger.getLogger(AppSecurityConfig.class);
@Autowired
private CustomAuthenticationProvider authProvider;
@Autowired
public void configAuthentication(AuthenticationManagerBuilder auth) throws Exception {
log.info("configAuthentication");
auth.authenticationProvider(authProvider);
}
@Override
public void configure(WebSecurity web) throws Exception {
log.info("configure WebSecurity");
web.ignoring()
.antMatchers("/assets/**");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
log.info("configure HttpSecurity");
http
.formLogin()
.loginPage("/login")
.permitAll()
.loginProcessingUrl("/login")
.usernameParameter("username").passwordParameter("password")
.defaultSuccessUrl("/main/list")
.failureUrl("/login?fail=1")
.and()
.authorizeRequests()
.antMatchers("/main/**").hasRole("v_role")
.anyRequest().authenticated()
.and()
.logout()
//.logoutUrl("/logout")
.logoutSuccessUrl("/login?logout")
.invalidateHttpSession(true)
.and()
.exceptionHandling()
.accessDeniedPage("/access_denied")
.and()
.csrf();
}
私の答え私はそれがhasAuthorityにhasRoleもを変更した必要なもの
。
.antMatchers("/main/**").hasAuthority("v_main")
私はSimpleGrantedAuthority
と同じ意味を返信いただきありがとうございます。私は、私のCustomAuthenticationProviderでAuthenticationProviderを実装する役割を設定しています。認証メソッドでは、私はuserにロールを設定しています。ところで、私はあなたのコードをテストし、それは私に正しい役割を返します – AEMLoviji
あなたはありません申し訳ありません – Mudassar
をチェックしているそのロールのrequest.isUserInRole(ga.getAuthority()))真ありません。私はちょうどそれが何を返しますそれをテストしました。それは私がユーザーに設定した役割を私に返します。しかし、あなたが言ったように、isUserInRoleはtrueを返しません。そして何が問題なの? – AEMLoviji