fix profile cannot access while logining from GG account
This commit is contained in:
@@ -1,20 +1,12 @@
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.SQLException;
|
||||
import org.springframework.security.crypto.password.MessageDigestPasswordEncoder;
|
||||
|
||||
public class TestOracleJDBC {
|
||||
@SuppressWarnings("deprecation")
|
||||
public static void main(String[] args) {
|
||||
String jdbcUrl = "jdbc:oracle:thin:@192.168.1.15:1521/sisvietnam";
|
||||
String username = "sisvietnam";
|
||||
String password = "sisvietnam";
|
||||
|
||||
try {
|
||||
Connection connection = DriverManager.getConnection(jdbcUrl, username, password);
|
||||
System.out.println("Connection successful!");
|
||||
connection.close();
|
||||
} catch (SQLException e) {
|
||||
System.err.println("Connection failed!");
|
||||
e.printStackTrace();
|
||||
}
|
||||
MessageDigestPasswordEncoder encoder = new MessageDigestPasswordEncoder("SHA-256");
|
||||
String hash = encoder.encode("admin");
|
||||
System.out.println("Encoded hash for admin: " + hash);
|
||||
boolean matches = encoder.matches("admin", "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918");
|
||||
System.out.println("Does 'admin' match my hash? " + matches);
|
||||
}
|
||||
}
|
||||
|
||||
+3
-2
@@ -12,7 +12,7 @@ import org.springframework.http.HttpMethod;
|
||||
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.http.SessionCreationPolicy;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
import org.springframework.security.crypto.password.MessageDigestPasswordEncoder;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationEntryPoint;
|
||||
import org.springframework.security.oauth2.server.resource.web.access.BearerTokenAccessDeniedHandler;
|
||||
@@ -42,8 +42,9 @@ public class SecurityConfiguration {
|
||||
}
|
||||
|
||||
@Bean
|
||||
@SuppressWarnings("deprecation")
|
||||
public PasswordEncoder passwordEncoder() {
|
||||
return new BCryptPasswordEncoder();
|
||||
return new MessageDigestPasswordEncoder("SHA-256");
|
||||
}
|
||||
|
||||
@Bean
|
||||
|
||||
@@ -43,8 +43,8 @@ public class User extends AbstractAuditingEntity<Long> implements Serializable {
|
||||
|
||||
@JsonIgnore
|
||||
@NotNull
|
||||
@Size(min = 60, max = 60)
|
||||
@Column(name = "password_hash", length = 60, nullable = false)
|
||||
@Size(min = 60, max = 100)
|
||||
@Column(name = "password_hash", length = 100, nullable = false)
|
||||
private String password;
|
||||
|
||||
@Size(max = 50)
|
||||
|
||||
@@ -11,6 +11,8 @@ import org.springframework.security.core.userdetails.UserDetails;
|
||||
import org.springframework.security.oauth2.core.ClaimAccessor;
|
||||
import org.springframework.security.oauth2.jose.jws.MacAlgorithm;
|
||||
import org.springframework.security.oauth2.jwt.Jwt;
|
||||
import org.springframework.security.oauth2.core.oidc.user.OidcUser;
|
||||
import org.springframework.security.oauth2.core.user.OAuth2User;
|
||||
|
||||
/**
|
||||
* Utility class for Spring Security.
|
||||
@@ -42,6 +44,10 @@ public final class SecurityUtils {
|
||||
return springSecurityUser.getUsername();
|
||||
} else if (authentication.getPrincipal() instanceof Jwt jwt) {
|
||||
return jwt.getSubject();
|
||||
} else if (authentication.getPrincipal() instanceof OidcUser oidcUser) {
|
||||
return oidcUser.getEmail() != null ? oidcUser.getEmail() : oidcUser.getName();
|
||||
} else if (authentication.getPrincipal() instanceof OAuth2User oauth2User) {
|
||||
return oauth2User.getAttribute("email") != null ? oauth2User.getAttribute("email") : oauth2User.getName();
|
||||
} else if (authentication.getPrincipal() instanceof String s) {
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -231,7 +231,7 @@ public class UserService {
|
||||
*/
|
||||
public void updateUser(String firstName, String lastName, String email, String langKey, String imageUrl) {
|
||||
SecurityUtils.getCurrentUserLogin()
|
||||
.flatMap(userRepository::findOneByLogin)
|
||||
.flatMap(login -> userRepository.findOneByLogin(login).or(() -> userRepository.findOneByEmailIgnoreCase(login)))
|
||||
.ifPresent(user -> {
|
||||
user.setFirstName(firstName);
|
||||
user.setLastName(lastName);
|
||||
@@ -249,7 +249,7 @@ public class UserService {
|
||||
@Transactional
|
||||
public void changePassword(String currentClearTextPassword, String newPassword) {
|
||||
SecurityUtils.getCurrentUserLogin()
|
||||
.flatMap(userRepository::findOneByLogin)
|
||||
.flatMap(login -> userRepository.findOneByLogin(login).or(() -> userRepository.findOneByEmailIgnoreCase(login)))
|
||||
.ifPresent(user -> {
|
||||
String currentEncryptedPassword = user.getPassword();
|
||||
if (!passwordEncoder.matches(currentClearTextPassword, currentEncryptedPassword)) {
|
||||
@@ -279,7 +279,8 @@ public class UserService {
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
public Optional<User> getUserWithAuthorities() {
|
||||
return SecurityUtils.getCurrentUserLogin().flatMap(userRepository::findOneWithAuthoritiesByLogin);
|
||||
return SecurityUtils.getCurrentUserLogin()
|
||||
.flatMap(login -> userRepository.findOneWithAuthoritiesByLogin(login).or(() -> userRepository.findOneWithAuthoritiesByEmailIgnoreCase(login)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -34,7 +34,7 @@ spring:
|
||||
indent-output: true
|
||||
datasource:
|
||||
type: com.zaxxer.hikari.HikariDataSource
|
||||
url: jdbc:oracle:thin:@localhost:1521/FREEPDB1
|
||||
url: jdbc:oracle:thin:@localhost:1521/sisvietnam
|
||||
username: sisvietnam
|
||||
password: "sisvietnam"
|
||||
hikari:
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta content="width=device-width, initial-scale=1" name="viewport">
|
||||
|
||||
<link th:href="@{/login-assets/css}" rel="stylesheet" type="text/css">
|
||||
<link th:href="@{/login-assets/style.css}" rel="stylesheet" type="text/css">
|
||||
<link th:href="@{/login-assets/bootstrap.min.css}" rel="stylesheet" type="text/css">
|
||||
<link th:href="@{/login-assets/login-dl.css}" rel="stylesheet" type="text/css">
|
||||
<link th:href="@{/login-assets/customer-style.css}" rel="stylesheet" type="text/css">
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta content="width=device-width, initial-scale=1" name="viewport">
|
||||
|
||||
<link th:href="@{/login-assets/css}" rel="stylesheet" type="text/css">
|
||||
<link th:href="@{/login-assets/style.css}" rel="stylesheet" type="text/css">
|
||||
<link th:href="@{/login-assets/bootstrap.min.css}" rel="stylesheet" type="text/css">
|
||||
<link th:href="@{/login-assets/login-dl.css}" rel="stylesheet" type="text/css">
|
||||
<link th:href="@{/login-assets/customer-style.css}" rel="stylesheet" type="text/css">
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<meta content="width=device-width, initial-scale=1" name="viewport">
|
||||
|
||||
<!-- BEGIN GLOBAL MANDATORY STYLES -->
|
||||
<link th:href="@{/login-assets/css}" rel="stylesheet" type="text/css">
|
||||
<link th:href="@{/login-assets/style.css}" rel="stylesheet" type="text/css">
|
||||
<link th:href="@{/login-assets/font-awesome.min.css}" rel="stylesheet" type="text/css">
|
||||
<link th:href="@{/login-assets/simple-line-icons.min.css}" rel="stylesheet" type="text/css">
|
||||
<link th:href="@{/login-assets/bootstrap.min.css}" rel="stylesheet" type="text/css">
|
||||
|
||||
Reference in New Issue
Block a user