-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCustomAuthenticationProvider.java
32 lines (25 loc) · 1.26 KB
/
CustomAuthenticationProvider.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.example.workflow.config;
import org.camunda.bpm.engine.ProcessEngine;
import org.camunda.bpm.engine.rest.security.auth.AuthenticationResult;
import org.camunda.bpm.engine.rest.security.auth.impl.ContainerBasedAuthenticationProvider;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
public class CustomAuthenticationProvider extends ContainerBasedAuthenticationProvider {
public static final String AUTHENTICATED_USER = "demo";
public static final String ADMIN_GROUP = "camunda-admin";
@Override
public AuthenticationResult extractAuthenticatedUser(HttpServletRequest request, ProcessEngine engine) {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication == null) {
return AuthenticationResult.unsuccessful();
}
AuthenticationResult authenticationResult = new AuthenticationResult(AUTHENTICATED_USER, true);
List<String> groups = new ArrayList<>();
groups.add(ADMIN_GROUP);
authenticationResult.setGroups(groups);
return authenticationResult;
}
}