2015-05-18 2 views
1

У меня есть приложение для весеннего ботинок, защищенное весной. Все прекрасно работает. но если учетная запись пользователя заблокирована, как я могу отображать сообщение в качестве заблокированной учетной записи, а не для имени пользователя и пароля.spring security thymeleaf LockedException пользовательское сообщение

Моя Войти Форма конфигурации

<div class="panel-body"> 
    <div class="row text-center"> 
    <div th:if="${param.error}">Invalid user name and password.</div> 
    <div th:if="${param.logout}">You have been logged out.</div> 
    </div> 
    <div class="row"> 
    <form class="form-horizontal" role="form" th:action="@{/login}"  method="post"> 
    <div class="form-group"> 
     <label class="col-md-4 control-label"> User Name </label> 
     <div class="col-md-6"><input type="text" name="username" /> 
     </div> 
    </div> 
    <div class="form-group"> 
    <label class="col-md-4 control-label"> Password </label> 
     <div class="col-md-6"><input type="password" name="password" /> 
     </div> 
    </div> 
    <div class="form-group"> 
     <div class="col-md-offset-4 col-md-6"> 
     <input type="submit" value="Sign In" class="btn btn-primary" /> 
     </div> 
    </div> 
    </form> 
</div> 
</div> 

безопасности

@Configuration 
    public static class FormLoginWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter { 

     @Autowired 
     MyAuthenticationSuccessHandler myAuthenticationSuccessHandler; 

     @Override 
     public void configure(WebSecurity web) throws Exception { 
      String[] unsecuredResources = { "/css/**", "/js/**", "/img/**", "/fonts/**" }; 
      web.ignoring().antMatchers(unsecuredResources); 
     } 

     @Override 
     protected void configure(HttpSecurity http) throws Exception { 
      String[] unSecuredUrls = { "login.html", "/login", "/home", "/appPwd.html", "/partials/pwdRequest.html" }; 
      http.authorizeRequests().antMatchers(unSecuredUrls).permitAll(); 
      http.authorizeRequests().anyRequest().authenticated().and().formLogin().loginPage("/login").defaultSuccessUrl("/", true) 
        .successHandler(myAuthenticationSuccessHandler) 
        /* .failureHandler(myAuthenticationFailureHandler) */.and().logout().permitAll(); 
     } 
    } 

ответ

5

Вы должны извлечь причину отказа от Spring безопасности. Следующий код будет работать.

 <div class="error" th:if="${param.error}" th:with="errorMsg=${session['SPRING_SECURITY_LAST_EXCEPTION'].message}"> 
     Reason: <span th:text="${errorMsg}">Wrong input!</span> 
    </div> 
+1

Работал как очарование брата! –

Смежные вопросы