RbacUserDetailsService.java 文件源码

java
阅读 25 收藏 0 点赞 0 评论 0

项目:bootstrap 作者:
@Override
public UserDetails loadUserByUsername(final String username) {
    final Object[][] userAndRoles = userRepository.findByLoginFetchRoles(username);
    final SystemUser user;
    final Collection<GrantedAuthority> authorities;
    if (userAndRoles.length == 0) {
        user = new SystemUser();
        user.setLogin(username);
        authorities = new ArrayList<>();
    } else {
        user = (SystemUser) userAndRoles[0][0];

        // Add all roles
        authorities = toSimpleRoles(userAndRoles, 1);
    }

    // Update last connection information only as needed for performance, delta is one minute
    final Date now = org.ligoj.bootstrap.core.DateUtils.newCalendar().getTime();
    if (user.getLastConnection() == null || now.getTime() - user.getLastConnection().getTime() > DateUtils.MILLIS_PER_DAY) {
        user.setLastConnection(now);
        userRepository.saveAndFlush(user);
    }

    // Also add the default role as needed
    authorities.add(new SimpleGrantedAuthority(SystemRole.DEFAULT_ROLE));
    return new User(username, "N/A", authorities);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号