おはようございます。春のセキュリティアクセスが適切な役割で拒否されました
私は春のセキュリティレイヤーで春のmvcアプリケーションを手に入れました。 は、だから私は持っているすべてのユーザーのための良い/転送/ ** URLのアクセスを許可するようにセキュリティを設定した4つの役割
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf()
.disable()
// For all static resources we got permissions
.authorizeRequests()
.antMatchers("/css/**", "/js/**", "/img/**","/font/**").permitAll()
// Good transfer
.antMatchers("/good_transfer/**").hasAnyRole(UserRole.ROLE_ASSEMBLER.name(),UserRole.ROLE_LOADER.name(),UserRole.ROLE_SHIPPER.name(),UserRole.ROLE_SELLER.name())
.anyRequest().authenticated()
.and();
http.formLogin()
// указываем страницу с формой логина
.loginPage("/login")
// указываем action с формы логина
.loginProcessingUrl("/j_spring_security_check")
// указываем URL при неудачном логине
.failureUrl("/login?error")
// Указываем параметры логина и пароля с формы логина
.usernameParameter("j_username")
.passwordParameter("j_password")
// даем доступ к форме логина всем
.permitAll();
http.logout()
// разрешаем делать логаут всем
.permitAll()
// указываем URL логаута
.logoutUrl("/logout")
// указываем URL при удачном логауте
.logoutSuccessUrl("/")
// делаем не валидной текущую сессию
.invalidateHttpSession(true);
}
私は役割ROLE_ASSEMBLERでユーザーのログイン名とパスワードでログインフォームを提出の一つと成功した後に私は/コントローラに落ちるログイン:
@Controller
public class LoginController extends CommonController
{
@RequestMapping("/login")
public ModelAndView login()
{
return model("login");
}
@RequestMapping("/")
public ModelAndView main(HttpServletRequest request)
{
String redirect = "login";
if(request.isUserInRole(UserRole.ROLE_ASSEMBLER.name())||request.isUserInRole(UserRole.ROLE_LOADER.name())||request.isUserInRole(UserRole.ROLE_SHIPPER.name())||request.isUserInRole(UserRole.ROLE_SELLER.name()))
{
redirect = "good_transfer";
}
return new ModelAndView("redirect:/"+redirect);
}
}
表現request.isUserInRole(UserRole.ROLE_ASSEMBLER.name())trueを返しますので、私は必要な役割を得ました。そのコントローラは/良い転送URLを私にリダイレクトした後、(私はそのURLのコントローラました):。
@Controller
public class GoodTransferController extends CommonController
{
@RequestMapping("/good_transfer")
public ModelAndView getAssemblyList()
{
ModelAndView model = model("good-transfer");
return model;
}
}
をしかし、私は... t each the controller
の方法:( それはアクセス拒否の例外をスローすることができます
このURLはROLE_ASSEMBLERユーザーに許可されなければならない理由。私は理解can`t。
を助けてください。