irpas技术客

activiti中报错An Authentication object was not found in the SecurityContext_京北游戏官方

未知 5431

org.springframework.security.authentication.AuthenticationCredentialsNotFoundException: An Authentication object was not found in the SecurityContext

这是因为activiti7与springboot整合中集成了springsecurity

虽然你的用户赋予了权限

但是你执行方法的时候没有定义是哪个用户在执行方法

要不就整完全点写登录页面

要不就自定义用户去执行方法

securityUtil.logInAs(“zhangsan”);

下面是这个SecurityUtil

package com.qiangqiang.util; import org.slf4j.LoggerFactory; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.AutoConfigureOrder; 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; /** * \* Created with IntelliJ IDEA. * \* @author: xiyue * \* Date: 2021/1/6 * \* Time: 11:00 * \* To change this template use File | Settings | File Templates. * \* Description: * \ activiti与springboot整合之后,默认集成了spring security */ @Component public class SecurityUtil { @Autowired @Qualifier("myUserDetailsService") private 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 b) throws IllegalArgumentException { } @Override public String getName() { return user.getUsername(); } } ) ); org.activiti.engine.impl.identity.Authentication.setAuthenticatedUserId(username); } }


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #activiti中报错An #authentication #Object #was #not #found #in #The