PasswordReciprocal optimize

This commit is contained in:
MaxKey
2021-12-10 22:35:12 +08:00
parent d5517af26a
commit df81c2ed68
20 changed files with 101 additions and 138 deletions
@@ -22,7 +22,7 @@ package org.maxkey.authz.endpoint;
import org.apache.commons.lang3.StringUtils;
import org.maxkey.configuration.ApplicationConfig;
import org.maxkey.crypto.ReciprocalUtils;
import org.maxkey.crypto.password.PasswordReciprocal;
import org.maxkey.entity.Accounts;
import org.maxkey.entity.UserInfo;
import org.maxkey.entity.apps.Apps;
@@ -80,12 +80,12 @@ public class AuthorizeBaseEndpoint {
account=accountsService.load(new Accounts(userInfo.getId(),loadApp.getId()));
if(account!=null){
account.setRelatedPassword(ReciprocalUtils.decoder(account.getRelatedPassword()));
account.setRelatedPassword(PasswordReciprocal.getInstance().decoder(account.getRelatedPassword()));
}
}else if(loadApp.getCredential()==Apps.CREDENTIALS.SHARED){
account.setRelatedUsername(loadApp.getSharedUsername());
account.setRelatedPassword(ReciprocalUtils.decoder(loadApp.getSharedPassword()));
account.setRelatedPassword(PasswordReciprocal.getInstance().decoder(loadApp.getSharedPassword()));
}else if(loadApp.getCredential()==Apps.CREDENTIALS.SYSTEM){
@@ -101,7 +101,7 @@ public class AuthorizeBaseEndpoint {
account.setUsername(userInfo.getWindowsAccount());
}
//decoder database stored encode password
account.setRelatedPassword(ReciprocalUtils.decoder(WebContext.getUserInfo().getDecipherable()));
account.setRelatedPassword(PasswordReciprocal.getInstance().decoder(WebContext.getUserInfo().getDecipherable()));
}else if(loadApp.getCredential()==Apps.CREDENTIALS.NONE){
@@ -21,8 +21,7 @@
package org.maxkey.authz.endpoint;
import javax.servlet.http.HttpServletRequest;
import org.maxkey.crypto.ReciprocalUtils;
import org.maxkey.crypto.password.PasswordReciprocal;
import org.maxkey.entity.Accounts;
import org.maxkey.entity.UserInfo;
import org.maxkey.util.StringUtils;
@@ -76,7 +75,7 @@ public class AuthorizeCredentialEndpoint extends AuthorizeBaseEndpoint{
appUser.setAppName(getApp(appId).getName());
appUser.setRelatedUsername(identity_username);
appUser.setRelatedPassword(ReciprocalUtils.encode(identity_password));
appUser.setRelatedPassword(PasswordReciprocal.getInstance().encode(identity_password));
if(accountsService.insert(appUser)){
@@ -21,8 +21,7 @@
package org.maxkey.authz.endpoint;
import javax.servlet.http.HttpServletRequest;
import org.maxkey.crypto.ReciprocalUtils;
import org.maxkey.crypto.password.PasswordReciprocal;
import org.maxkey.entity.UserInfo;
import org.maxkey.web.WebConstants;
import org.maxkey.web.WebContext;
@@ -52,7 +51,7 @@ public class AuthorizeProtectedEndpoint{
@RequestParam("password") String password,
@RequestParam("redirect_uri") String redirect_uri){
UserInfo userInfo=WebContext.getUserInfo();
if( userInfo.getAppLoginPassword().equals(ReciprocalUtils.encode(password))){
if( userInfo.getAppLoginPassword().equals(PasswordReciprocal.getInstance().encode(password))){
WebContext.setAttribute(WebConstants.CURRENT_SINGLESIGNON_URI, redirect_uri);
return WebContext.redirect(redirect_uri);
}
@@ -25,9 +25,9 @@ import org.joda.time.DateTime;
import org.maxkey.authn.SigninPrincipal;
import org.maxkey.authz.endpoint.adapter.AbstractAuthorizeAdapter;
import org.maxkey.configuration.oidc.OIDCProviderMetadata;
import org.maxkey.crypto.ReciprocalUtils;
import org.maxkey.crypto.jwt.signer.service.JwtSigningAndValidationService;
import org.maxkey.crypto.jwt.signer.service.impl.SymmetricSigningAndValidationServiceBuilder;
import org.maxkey.crypto.password.PasswordReciprocal;
import org.maxkey.entity.UserInfo;
import org.maxkey.entity.apps.Apps;
import org.maxkey.entity.apps.AppsJwtDetails;
@@ -79,7 +79,7 @@ public class JwtHS256Adapter extends AbstractAuthorizeAdapter {
JWT jwtToken = new PlainJWT(jwtClaims);
String sharedSecret=ReciprocalUtils.decoder(details.getAlgorithmKey());
String sharedSecret=PasswordReciprocal.getInstance().decoder(details.getAlgorithmKey());
_logger.debug("jwt sharedSecret : "+sharedSecret);
@@ -31,11 +31,11 @@ import org.maxkey.authz.oauth2.provider.ClientDetailsService;
import org.maxkey.authz.oauth2.provider.OAuth2Authentication;
import org.maxkey.authz.oauth2.provider.token.DefaultTokenServices;
import org.maxkey.constants.ContentType;
import org.maxkey.crypto.ReciprocalUtils;
import org.maxkey.crypto.jwt.encryption.service.JwtEncryptionAndDecryptionService;
import org.maxkey.crypto.jwt.encryption.service.impl.RecipientJwtEncryptionAndDecryptionServiceBuilder;
import org.maxkey.crypto.jwt.signer.service.JwtSigningAndValidationService;
import org.maxkey.crypto.jwt.signer.service.impl.SymmetricSigningAndValidationServiceBuilder;
import org.maxkey.crypto.password.PasswordReciprocal;
import org.maxkey.entity.UserInfo;
import org.maxkey.entity.apps.oauth2.provider.ClientDetails;
import org.maxkey.persistence.service.AppsService;
@@ -233,7 +233,7 @@ public class OpenIdConnectUserInfoEndpoint {
|| signingAlg.equals(JWSAlgorithm.HS384)
|| signingAlg.equals(JWSAlgorithm.HS512)) {
// sign it with the client's secret
String client_secret=ReciprocalUtils.decoder(clientDetails.getClientSecret());
String client_secret=PasswordReciprocal.getInstance().decoder(clientDetails.getClientSecret());
JwtSigningAndValidationService symmetricJwtSignerService =symmetricJwtSignerServiceBuilder.serviceBuilder(client_secret);
if(symmetricJwtSignerService!=null){
@@ -34,11 +34,11 @@ import org.maxkey.authz.oauth2.provider.OAuth2Authentication;
import org.maxkey.authz.oauth2.provider.OAuth2Request;
import org.maxkey.authz.oauth2.provider.token.TokenEnhancer;
import org.maxkey.configuration.oidc.OIDCProviderMetadata;
import org.maxkey.crypto.ReciprocalUtils;
import org.maxkey.crypto.jwt.encryption.service.JwtEncryptionAndDecryptionService;
import org.maxkey.crypto.jwt.encryption.service.impl.RecipientJwtEncryptionAndDecryptionServiceBuilder;
import org.maxkey.crypto.jwt.signer.service.JwtSigningAndValidationService;
import org.maxkey.crypto.jwt.signer.service.impl.SymmetricSigningAndValidationServiceBuilder;
import org.maxkey.crypto.password.PasswordReciprocal;
import org.maxkey.entity.apps.oauth2.provider.ClientDetails;
import org.maxkey.web.WebContext;
@@ -174,7 +174,7 @@ public class OIDCIdTokenEnhancer implements TokenEnhancer {
|| signingAlg.equals(JWSAlgorithm.HS384)
|| signingAlg.equals(JWSAlgorithm.HS512)) {
// sign it with the client's secret
String client_secret=ReciprocalUtils.decoder(clientDetails.getClientSecret());
String client_secret=PasswordReciprocal.getInstance().decoder(clientDetails.getClientSecret());
JwtSigningAndValidationService symmetricJwtSignerService =symmetricJwtSignerServiceBuilder.serviceBuilder(client_secret);
if(symmetricJwtSignerService!=null){