| | |
| | | package com.genersoft.iot.vmp.conf.security; |
| | | |
| | | import com.genersoft.iot.vmp.conf.security.dto.LoginUser; |
| | | import com.genersoft.iot.vmp.storager.dao.dto.User; |
| | | import org.springframework.security.authentication.AuthenticationManager; |
| | | import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; |
| | | import org.springframework.security.core.Authentication; |
| | |
| | | import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; |
| | | |
| | | import javax.security.sasl.AuthenticationException; |
| | | import java.time.LocalDateTime; |
| | | |
| | | public class SecurityUtils { |
| | | |
| | |
| | | public static LoginUser login(String username, String password, AuthenticationManager authenticationManager) throws AuthenticationException { |
| | | //使用security框架自带的验证token生成器 也可以自定义。 |
| | | UsernamePasswordAuthenticationToken token =new UsernamePasswordAuthenticationToken(username,password); |
| | | //认证 如果失败,这里会自动异常后返回,所以这里不需要判断返回值是否为空,确定是否登录成功 |
| | | Authentication authenticate = authenticationManager.authenticate(token); |
| | | SecurityContextHolder.getContext().setAuthentication(authenticate); |
| | | LoginUser user = (LoginUser) authenticate.getPrincipal(); |
| | | |
| | | SecurityContextHolder.getContext().setAuthentication(token); |
| | | |
| | | return user; |
| | | } |
| | | |
| | |
| | | if(authentication!=null){ |
| | | Object principal = authentication.getPrincipal(); |
| | | if(principal!=null && !"anonymousUser".equals(principal)){ |
| | | LoginUser user = (LoginUser) authentication.getPrincipal(); |
| | | return user; |
| | | // LoginUser user = (LoginUser) authentication.getPrincipal(); |
| | | |
| | | String username = (String) principal; |
| | | User user = new User(); |
| | | user.setUsername(username); |
| | | LoginUser loginUser = new LoginUser(user, LocalDateTime.now()); |
| | | return loginUser; |
| | | } |
| | | } |
| | | return null; |