fix charsets
This commit is contained in:
parent
7d5f08646e
commit
c73c172abe
@ -307,7 +307,7 @@ public class SecurityConfig {
|
|||||||
firewall.setAllowedHeaderValues((header) -> {
|
firewall.setAllowedHeaderValues((header) -> {
|
||||||
String parsed;
|
String parsed;
|
||||||
try {
|
try {
|
||||||
parsed = new String(header.getBytes("ISO_8859_1"), "UTF_8");
|
parsed = new String(header.getBytes("ISO-8859-1"), "UTF-8");
|
||||||
return allowed.matcher(parsed).matches();
|
return allowed.matcher(parsed).matches();
|
||||||
} catch (UnsupportedEncodingException e) {
|
} catch (UnsupportedEncodingException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -178,7 +178,7 @@ public class OidcTokenManager implements SmartInitializingSingleton {
|
|||||||
token.setAccessToken(RandomStringUtils.random(ACCESS_TOKEN_LENGTH, true, true));
|
token.setAccessToken(RandomStringUtils.random(ACCESS_TOKEN_LENGTH, true, true));
|
||||||
token.setExpiresIn(client.getTokenLifetime());
|
token.setExpiresIn(client.getTokenLifetime());
|
||||||
|
|
||||||
Builder claimsSetBuilder = createUserClaims(user);
|
Builder claimsSetBuilder = createUserClaims(client, user);
|
||||||
|
|
||||||
claimsSetBuilder.issuer(issuer);
|
claimsSetBuilder.issuer(issuer);
|
||||||
claimsSetBuilder.audience(client.getClientId());
|
claimsSetBuilder.audience(client.getClientId());
|
||||||
@ -215,23 +215,27 @@ public class OidcTokenManager implements SmartInitializingSingleton {
|
|||||||
/**
|
/**
|
||||||
* Creates the user claims.
|
* Creates the user claims.
|
||||||
*
|
*
|
||||||
|
* @param client the client
|
||||||
* @param user the user
|
* @param user the user
|
||||||
* @return the builder
|
* @return the builder
|
||||||
*/
|
*/
|
||||||
public Builder createUserClaims(User user) {
|
public Builder createUserClaims(OidcClient client, User user) {
|
||||||
|
|
||||||
Builder claimsSetBuilder = new Builder();
|
Builder claimsSetBuilder = new Builder();
|
||||||
claimsSetBuilder.subject(String.valueOf(user.getId()));
|
claimsSetBuilder.subject(String.valueOf(user.getId()));
|
||||||
claimsSetBuilder.claim("name", user.getUsername());
|
|
||||||
claimsSetBuilder.claim("username", user.getUsername());
|
String username = user.getUsername();
|
||||||
claimsSetBuilder.claim("preferred_username", user.getUsername());
|
|
||||||
|
claimsSetBuilder.claim("name", username);
|
||||||
|
claimsSetBuilder.claim("username", username);
|
||||||
|
claimsSetBuilder.claim("preferred_username", username);
|
||||||
|
|
||||||
UserProfileField emailProfileField = userProfileFieldManager.get(user.getId(),
|
UserProfileField emailProfileField = userProfileFieldManager.get(user.getId(),
|
||||||
UserProfileFields.PROFILE_FIELD_EMAIL);
|
UserProfileFields.PROFILE_FIELD_EMAIL);
|
||||||
UserProfileField emailPrimaryProfileField = userProfileFieldManager.get(user.getId(),
|
UserProfileField emailPrimaryProfileField = userProfileFieldManager.get(user.getId(),
|
||||||
UserProfileFields.PROFILE_FIELD_EMAIL_PRIMARY);
|
UserProfileFields.PROFILE_FIELD_EMAIL_PRIMARY);
|
||||||
|
|
||||||
String email = userManager.getBstlyEmail(user.getUsername());
|
String email = userManager.getBstlyEmail(username);
|
||||||
if (emailProfileField != null && emailPrimaryProfileField != null
|
if (emailProfileField != null && emailPrimaryProfileField != null
|
||||||
&& StringUtils.hasText(emailProfileField.getValue())
|
&& StringUtils.hasText(emailProfileField.getValue())
|
||||||
&& Boolean.getBoolean(emailPrimaryProfileField.getValue())) {
|
&& Boolean.getBoolean(emailPrimaryProfileField.getValue())) {
|
||||||
|
@ -19,7 +19,9 @@ import de.bstly.we.businesslogic.UserManager;
|
|||||||
import de.bstly.we.controller.BaseController;
|
import de.bstly.we.controller.BaseController;
|
||||||
import de.bstly.we.controller.support.EntityResponseStatusException;
|
import de.bstly.we.controller.support.EntityResponseStatusException;
|
||||||
import de.bstly.we.model.User;
|
import de.bstly.we.model.User;
|
||||||
|
import de.bstly.we.oidc.businesslogic.OidcClientManager;
|
||||||
import de.bstly.we.oidc.businesslogic.OidcTokenManager;
|
import de.bstly.we.oidc.businesslogic.OidcTokenManager;
|
||||||
|
import de.bstly.we.oidc.model.OidcClient;
|
||||||
import de.bstly.we.oidc.model.OidcToken;
|
import de.bstly.we.oidc.model.OidcToken;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -32,6 +34,8 @@ public class OidcUserInfoController extends BaseController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private OidcTokenManager oidcTokenManager;
|
private OidcTokenManager oidcTokenManager;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private OidcClientManager oidcClientManager;
|
||||||
|
@Autowired
|
||||||
private UserManager userManager;
|
private UserManager userManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -46,6 +50,7 @@ public class OidcUserInfoController extends BaseController {
|
|||||||
|
|
||||||
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
|
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
|
||||||
Long userId = getCurrentUserId();
|
Long userId = getCurrentUserId();
|
||||||
|
OidcClient client = null;
|
||||||
if (!auth.isAuthenticated()) {
|
if (!auth.isAuthenticated()) {
|
||||||
if (authorizationHeader == null) {
|
if (authorizationHeader == null) {
|
||||||
throw new EntityResponseStatusException(HttpStatus.UNAUTHORIZED);
|
throw new EntityResponseStatusException(HttpStatus.UNAUTHORIZED);
|
||||||
@ -58,6 +63,7 @@ public class OidcUserInfoController extends BaseController {
|
|||||||
throw new EntityResponseStatusException(HttpStatus.UNAUTHORIZED);
|
throw new EntityResponseStatusException(HttpStatus.UNAUTHORIZED);
|
||||||
}
|
}
|
||||||
userId = token.getUserId();
|
userId = token.getUserId();
|
||||||
|
client = oidcClientManager.get(token.getClient());
|
||||||
}
|
}
|
||||||
|
|
||||||
User user = userManager.get(userId);
|
User user = userManager.get(userId);
|
||||||
@ -66,7 +72,7 @@ public class OidcUserInfoController extends BaseController {
|
|||||||
throw new EntityResponseStatusException(HttpStatus.CONFLICT);
|
throw new EntityResponseStatusException(HttpStatus.CONFLICT);
|
||||||
}
|
}
|
||||||
|
|
||||||
Builder claimsSetBuilder = oidcTokenManager.createUserClaims(user);
|
Builder claimsSetBuilder = oidcTokenManager.createUserClaims(client, user);
|
||||||
|
|
||||||
throw new EntityResponseStatusException(claimsSetBuilder.build().toJSONObject(), HttpStatus.OK);
|
throw new EntityResponseStatusException(claimsSetBuilder.build().toJSONObject(), HttpStatus.OK);
|
||||||
|
|
||||||
|
2
pom.xml
2
pom.xml
@ -13,7 +13,7 @@
|
|||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<java.version>11</java.version>
|
<java.version>11</java.version>
|
||||||
<log4j2.version>2.19.0</log4j2.version>
|
<log4j2.version>2.19.0</log4j2.version>
|
||||||
<revision>2.0.1-SNAPSHOT</revision>
|
<revision>2.0.2-SNAPSHOT</revision>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
|
Loading…
Reference in New Issue
Block a user