activiti-api
Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.
目录
概述
activiti-api的是一个非常常见的需求。
需求:
设计思路
实现思路分析
1.VariableEvent
public interface VariableCreatedEvent extends VariableEvent {
}
2.EmptyResult
public class EmptyResult extends Result<Void> {
public EmptyResult() {
}
public EmptyResult(Payload payload) {
super(payload,
null);
}
}
3.BPMNElement
public interface BPMNElement {
String getElementId();
String getProcessInstanceId();
String getProcessDefinitionId();
}
4.BPMNError
public interface BPMNError extends BPMNActivity {
String getErrorCode();
String getErrorId();
}
5.Connector
public interface Connector extends Function<IntegrationContext, IntegrationContext> {
}
AbstractSecurityManager
public abstract class AbstractSecurityManager implements SecurityManager {
private static final String INVALID_AUTHENTICATED_PRINCIPAL = "Invalid authenticated principal";
private final SecurityContextPrincipalProvider securityContextPrincipalProvider;
private final PrincipalIdentityProvider principalIdentityProvider;
private final PrincipalGroupsProvider principalGroupsProvider;
private final PrincipalRolesProvider principalRolesProvider;
public AbstractSecurityManager(SecurityContextPrincipalProvider securityContextPrincipalProvider,
PrincipalIdentityProvider principalIdentityProvider,
PrincipalGroupsProvider principalGroupsProvider,
PrincipalRolesProvider principalRolesProvider) {
this.securityContextPrincipalProvider = securityContextPrincipalProvider;
this.principalIdentityProvider = principalIdentityProvider;
this.principalGroupsProvider = principalGroupsProvider;
this.principalRolesProvider = principalRolesProvider;
}
@Override
public String getAuthenticatedUserId() {
return securityContextPrincipalProvider.getCurrentPrincipal()
.map(principalIdentityProvider::getUserId)
.orElseThrow(this::securityException);
}
@Override
public List<String> getAuthenticatedUserGroups() {
return securityContextPrincipalProvider.getCurrentPrincipal()
.map(principalGroupsProvider::getGroups)
.orElseThrow(this::securityException);
}
@Override
public List<String> getAuthenticatedUserRoles() {
return securityContextPrincipalProvider.getCurrentPrincipal()
.map(principalRolesProvider::getRoles)
.orElseThrow(this::securityException);
}
protected SecurityException securityException() {
return new SecurityException(INVALID_AUTHENTICATED_PRINCIPAL);
}
}
参考资料和推荐阅读
[1]. https://www.activiti.org/
欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!~