Spring安全性(Java配置)登录-根据用户角色返回不同的URL

Spring安全性(Java配置)登录-根据用户角色返回不同的URL,java,spring,login,spring-security,spring-java-config,Java,Spring,Login,Spring Security,Spring Java Config,我想在用户登录系统时根据他们的角色返回不同的页面 我有这个登录方法,但我不知道如何返回不同的URL @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/css/**", "/js/**", "/images/**", "/data/**", "/", "/home").per

我想在用户登录系统时根据他们的角色返回不同的页面

我有这个登录方法,但我不知道如何返回不同的URL

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
           .antMatchers("/css/**", "/js/**", "/images/**", "/data/**",  "/", "/home").permitAll()

        .anyRequest().authenticated()
            .and()
        .formLogin()
            .loginPage("/login")
            .permitAll()
            .and()
        .logout()
            .permitAll();
}
我怎么能做到?如果您不添加一个新的控制器,在登录后重定向到另一个url(在基本角色中),您可以这样做吗

多谢各位

您可以在
.formLogin()
.logout
功能上使用和。以下是一个例子:

.formLogin()
    .loginPage("/login").loginProcessingUrl("/login/validate")
    .defaultSuccessUrl("/").failureUrl("/login?error=true")
    .usernameParameter("username").passwordParameter("password")
    .and()
.logout()
    .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
    .logoutSuccessUrl("/login?logout=true")
对于每个用户角色的重定向,我建议
defaultSuccessUrl
页面根据用户角色进行重定向:

<sec:authorize access="hasRole('ROLE_ADMIN')">"
    <c:redirect url="/admin.html"/>
</sec:authorize>
<sec:authorize access="hasRole('ROLE_USER')">"
    <c:redirect url="/user.html"/>
</sec:authorize>
”
"

我不明白你所说的“……他扮演的角色”是什么意思,但也许这会有所帮助@Ralph是具有角色用户的登录用户,如果具有角色管理员的登录管理员,则具有不同的页面。我需要给一个不同的网址,当用户登录重定向页面或其他这是我需要的,太好了。但有一个问题,我使用java和注释中的所有内容,因为可以使url的一部分成为角色的函数?我重写了这个方法?我“复制”了这个;但是我没有xml,如何在java中生成一个附件?