mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
CB-5415. Added full name header for RP (#2795)
* CB-5415. Added full name header for RP * CB-5415. Refactor after review * CB-5415. Refactor after review --------- Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
This commit is contained in:
co-authored by
Daria Marutkina
parent
081b0eaead
commit
5be8582bfd
+1
@@ -22,6 +22,7 @@ interface RPConstants {
|
||||
String PARAM_TEAM = "team-header";
|
||||
String PARAM_FIRST_NAME = "first-name-header";
|
||||
String PARAM_LAST_NAME = "last-name-header";
|
||||
String PARAM_FULL_NAME = "full-name-header";
|
||||
String PARAM_ROLE_NAME = "role-header";
|
||||
String PARAM_TEAM_DELIMITER = "team-delimiter";
|
||||
}
|
||||
|
||||
+4
@@ -97,6 +97,7 @@ public class RPSessionHandler implements DBWSessionHandler {
|
||||
String role = request.getHeader(resolveParam(paramConfigMap.get(RPConstants.PARAM_ROLE_NAME), RPAuthProvider.X_ROLE_TE));
|
||||
String firstName = request.getHeader(resolveParam(paramConfigMap.get(RPConstants.PARAM_FIRST_NAME), RPAuthProvider.X_FIRST_NAME));
|
||||
String lastName = request.getHeader(resolveParam(paramConfigMap.get(RPConstants.PARAM_LAST_NAME), RPAuthProvider.X_LAST_NAME));
|
||||
String fullName = request.getHeader(resolveParam(paramConfigMap.get(RPConstants.PARAM_FULL_NAME), RPAuthProvider.X_FULL_NAME));
|
||||
String logoutUrl = Objects.requireNonNull(configuration).getParameter(RPConstants.PARAM_LOGOUT_URL);
|
||||
String teamDelimiter = JSONUtils.getString(configuration.getParameters(),
|
||||
RPConstants.PARAM_TEAM_DELIMITER, "\\|");
|
||||
@@ -111,6 +112,9 @@ public class RPSessionHandler implements DBWSessionHandler {
|
||||
if (!CommonUtils.isEmpty(lastName)) {
|
||||
credentials.put(SMStandardMeta.META_LAST_NAME, lastName);
|
||||
}
|
||||
if (!CommonUtils.isEmpty(fullName)) {
|
||||
credentials.put("fullName", fullName);
|
||||
}
|
||||
if (CommonUtils.isNotEmpty(logoutUrl)) {
|
||||
credentials.put("logoutUrl", logoutUrl);
|
||||
}
|
||||
|
||||
+1
@@ -77,6 +77,7 @@ public class ReverseProxyConfigurator implements DBWServiceServerConfigurator {
|
||||
parameters.put(RPConstants.PARAM_TEAM, RPAuthProvider.X_TEAM);
|
||||
parameters.put(RPConstants.PARAM_FIRST_NAME, RPAuthProvider.X_FIRST_NAME);
|
||||
parameters.put(RPConstants.PARAM_LAST_NAME, RPAuthProvider.X_LAST_NAME);
|
||||
parameters.put(RPConstants.PARAM_FULL_NAME, RPAuthProvider.X_FULL_NAME);
|
||||
smReverseProxyProviderConfiguration.setParameters(parameters);
|
||||
authApplication.getAuthConfiguration().addAuthProviderConfiguration(smReverseProxyProviderConfiguration );
|
||||
try {
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
<property id="team-delimiter" label="Team delimiter symbol" type="string" description="Team delimiter symbol, default: |"/>
|
||||
<property id="first-name-header" label="First name header" type="string" description="First name header name"/>
|
||||
<property id="last-name-header" label="Last name header" type="string" description="Last name header name"/>
|
||||
<property id="full-name-header" label="Full name header" type="string" description="Full name header name"/>
|
||||
<property id="role-header" label="Role header" type="string" description="Role header name" requiredFeatures="distributed"/>
|
||||
</propertyGroup>
|
||||
</configuration>
|
||||
|
||||
+6
@@ -49,6 +49,7 @@ public class RPAuthProvider implements SMAuthProviderExternal<SMSession>, SMSign
|
||||
public static final String X_ROLE_TE = "X-Role-TE";
|
||||
public static final String X_FIRST_NAME = "X-First-name";
|
||||
public static final String X_LAST_NAME = "X-Last-name";
|
||||
public static final String X_FULL_NAME = "X-Full-name";
|
||||
public static final String AUTH_PROVIDER = "reverseProxy";
|
||||
public static final String LOGOUT_URL = "logout-url";
|
||||
|
||||
@@ -82,6 +83,7 @@ public class RPAuthProvider implements SMAuthProviderExternal<SMSession>, SMSign
|
||||
Map<String, String> userMeta = new HashMap<>();
|
||||
String firstName = JSONUtils.getString(authParameters, SMStandardMeta.META_FIRST_NAME);
|
||||
String lastName = JSONUtils.getString(authParameters, SMStandardMeta.META_LAST_NAME);
|
||||
String fullName = JSONUtils.getString(authParameters, "fullName");
|
||||
if (CommonUtils.isNotEmpty(firstName)) {
|
||||
nameBuilder.append(firstName);
|
||||
userMeta.put(SMStandardMeta.META_FIRST_NAME, firstName);
|
||||
@@ -92,6 +94,10 @@ public class RPAuthProvider implements SMAuthProviderExternal<SMSession>, SMSign
|
||||
userMeta.put(SMStandardMeta.META_LAST_NAME, lastName);
|
||||
}
|
||||
|
||||
if (CommonUtils.isNotEmpty(fullName)) {
|
||||
nameBuilder = new StringBuilder(fullName);
|
||||
}
|
||||
|
||||
return new DBWUserIdentity(
|
||||
userName,
|
||||
nameBuilder.length() > 0 ? nameBuilder.toString() : userName,
|
||||
|
||||
Reference in New Issue
Block a user