|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package com.xkcoding.activiti.util;
-
- import lombok.RequiredArgsConstructor;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.security.core.Authentication;
- import org.springframework.security.core.GrantedAuthority;
- import org.springframework.security.core.context.SecurityContextHolder;
- import org.springframework.security.core.context.SecurityContextImpl;
- import org.springframework.security.core.userdetails.UserDetails;
- import org.springframework.security.core.userdetails.UserDetailsService;
- import org.springframework.stereotype.Component;
-
- import java.util.Collection;
-
- /**
- * <p>
- * 认证工具
- * </p>
- *
- * @author yangkai.shen
- * @date Created in 2019-07-01 18:38
- */
- @Component
- @RequiredArgsConstructor(onConstructor_ = @Autowired)
- public class SecurityUtil {
-
- private final UserDetailsService userDetailsService;
-
- public void logInAs(String username) {
-
- UserDetails user = userDetailsService.loadUserByUsername(username);
- if (user == null) {
- throw new IllegalStateException("User " + username + " doesn't exist, please provide a valid user");
- }
-
- SecurityContextHolder.setContext(new SecurityContextImpl(new Authentication() {
- @Override
- public Collection<? extends GrantedAuthority> getAuthorities() {
- return user.getAuthorities();
- }
-
- @Override
- public Object getCredentials() {
- return user.getPassword();
- }
-
- @Override
- public Object getDetails() {
- return user;
- }
-
- @Override
- public Object getPrincipal() {
- return user;
- }
-
- @Override
- public boolean isAuthenticated() {
- return true;
- }
-
- @Override
- public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException {
-
- }
-
- @Override
- public String getName() {
- return user.getUsername();
- }
- }));
- org.activiti.engine.impl.identity.Authentication.setAuthenticatedUserId(username);
- }
- }
|