최대 절전 모드와 Spring 보안을 사용하여 스프링 부팅을 시도하고 있습니다. 스프링 보안을 사용하여 로그인을 시도하는 동안 막혀서 이상한 문제로 디버깅하기가 어려웠습니다.Hibernate를 통한 Spring 보안 로그인이 나쁜 인증서를 반환합니다.
내 코드는 "userDAO.getUser (login)"에서 "loadUserByUsername (String login)"을 입력합니다. getUser (로그인)에서는의 createQuery 코드 행 이후에 인쇄되지 않는 로그 인 을 인쇄했으며 로그인시 UI에 "Bad credentials"메시지가 표시됩니다. 다음은
가 인쇄되는 로그입니다 : -2014년 4월 3일 22 : 38 : 54.150 INFO 4587 [바람둥이-HTTP - 6] --- service.CustomUserDetailsService : XXX loadUserByUsername
2014년 4월 3일 22 : 38 : INFO 4587 54.151 [바람둥이-HTTP - 6] --- model.implementation.UserDAOImpl : XXX 로그인 이름 :
2014년 4월 3일 22 -admin : 38 : 54.152 INFO 4587 [tomcat-http-6] --- model.implementation.UserDAOImpl : XXX User Query0 2014-04-03
아래의 다른 로그가 인쇄되지 않는 이유와 내 코드가 로그에 오류없이 어떻게 이동하는지 이해할 수 없습니다.
는 또한 모든 도움을
@Override
public UserDetails loadUserByUsername(String login)
throws UsernameNotFoundException {
logger.info("XXX loadUserByUsername");
AdminUser domainUser = userDAO.getUser(login);
boolean enabled = true;
boolean accountNonExpired = true;
boolean credentialsNonExpired = true;
boolean accountNonLocked = true;
logger.info("XXX User name " + domainUser.getLogin());
logger.info("XXX User Role " + domainUser.getRole().getRole());
return new User(
domainUser.getLogin(),
domainUser.getPassword(),
enabled,
accountNonExpired,
credentialsNonExpired,
accountNonLocked,
getAuthorities(domainUser.getRole().getId())
);
}
public AdminUser getUser(String login) {
logger.info("XXX Login name : -" + login);
List<AdminUser> userList = new ArrayList<AdminUser>();
logger.info("XXX User Query0 ");
Query query = openSession().createQuery("from AdminUser u where u.login = :login");
logger.info("XXX User Query1 ");
query.setParameter("login", login);
logger.info("XXX User Query2 : -");
userList = query.list();
if (userList.size() > 0)
return userList.get(0);
else
return null;
}
정말 예외가 있습니까? HQL 쿼리는 'AdminUser u에서 u.login = : login'으로 변경해야합니다. 왜 다른 로그 메시지가 인쇄되지 않는지 설명 할 수 있습니다. – Michal
그래, 나쁘다.하지만 AdminUser로 변경해도 아무런 영향이 없다. 그래도 코드 끝은 해당 쿼리에서만 이어집니다. 아래처럼 logback.xml을 사용하여 Hibernate 로그를 설정했다. 최대 절전 모드에서 예외를 확인하려면 추가 작업이 필요합니까? –