You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

SecurityUtil.java 2.2 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package com.xkcoding.activiti.util;
  2. import lombok.RequiredArgsConstructor;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.security.core.Authentication;
  5. import org.springframework.security.core.GrantedAuthority;
  6. import org.springframework.security.core.context.SecurityContextHolder;
  7. import org.springframework.security.core.context.SecurityContextImpl;
  8. import org.springframework.security.core.userdetails.UserDetails;
  9. import org.springframework.security.core.userdetails.UserDetailsService;
  10. import org.springframework.stereotype.Component;
  11. import java.util.Collection;
  12. /**
  13. * <p>
  14. * 认证工具
  15. * </p>
  16. *
  17. * @author yangkai.shen
  18. * @date Created in 2019-07-01 18:38
  19. */
  20. @Component
  21. @RequiredArgsConstructor(onConstructor_ = @Autowired)
  22. public class SecurityUtil {
  23. private final UserDetailsService userDetailsService;
  24. public void logInAs(String username) {
  25. UserDetails user = userDetailsService.loadUserByUsername(username);
  26. if (user == null) {
  27. throw new IllegalStateException("User " + username + " doesn't exist, please provide a valid user");
  28. }
  29. SecurityContextHolder.setContext(new SecurityContextImpl(new Authentication() {
  30. @Override
  31. public Collection<? extends GrantedAuthority> getAuthorities() {
  32. return user.getAuthorities();
  33. }
  34. @Override
  35. public Object getCredentials() {
  36. return user.getPassword();
  37. }
  38. @Override
  39. public Object getDetails() {
  40. return user;
  41. }
  42. @Override
  43. public Object getPrincipal() {
  44. return user;
  45. }
  46. @Override
  47. public boolean isAuthenticated() {
  48. return true;
  49. }
  50. @Override
  51. public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException {
  52. }
  53. @Override
  54. public String getName() {
  55. return user.getUsername();
  56. }
  57. }));
  58. org.activiti.engine.impl.identity.Authentication.setAuthenticatedUserId(username);
  59. }
  60. }