Skip to content

Commit 08a3e46

Browse files
authored
AYS-165 | Code Refactor and Optimization (#292)
1 parent 8a4dcc1 commit 08a3e46

21 files changed

+78
-341
lines changed

src/main/java/org/ays/admin_user/model/dto/request/AdminUserRegisterApplicationListRequest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.fasterxml.jackson.annotation.JsonIgnore;
44
import jakarta.validation.Valid;
55
import jakarta.validation.constraints.AssertTrue;
6+
import lombok.EqualsAndHashCode;
67
import lombok.Getter;
78
import lombok.Setter;
89
import org.apache.commons.collections4.CollectionUtils;
@@ -21,6 +22,7 @@
2122
*/
2223
@Getter
2324
@Setter
25+
@EqualsAndHashCode(callSuper = true)
2426
public class AdminUserRegisterApplicationListRequest extends AysPagingRequest implements AysFilteringRequest {
2527

2628
@Valid

src/main/java/org/ays/admin_user/util/exception/AysAdminUserNotActiveException.java

Lines changed: 0 additions & 29 deletions
This file was deleted.

src/main/java/org/ays/admin_user/util/exception/AysAdminUserNotExistByIdException.java

Lines changed: 0 additions & 31 deletions
This file was deleted.

src/main/java/org/ays/admin_user/util/exception/AysAdminUserNotExistByUsernameException.java

Lines changed: 0 additions & 31 deletions
This file was deleted.

src/main/java/org/ays/admin_user/util/exception/AysAdminUserNotVerifiedException.java

Lines changed: 0 additions & 29 deletions
This file was deleted.

src/main/java/org/ays/admin_user/util/exception/AysAdminUserRegisterApplicationCodeNotValidException.java

Lines changed: 0 additions & 31 deletions
This file was deleted.

src/main/java/org/ays/admin_user/util/exception/AysAdminUserRegisterApplicationSummaryNotExistByIdException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class AysAdminUserRegisterApplicationSummaryNotExistByIdException extends
1717
* Unique identifier for serialization.
1818
*/
1919
@Serial
20-
private static final long serialVersionUID = 8416712253227498925L;
20+
private static final long serialVersionUID = 1262328240991745084L;
2121

2222
/**
2323
* Constructs a new AysAdminUserRegisterApplicationSummaryNotExistByIdException with the specified ID.

src/main/java/org/ays/auth/config/SecurityConfiguration.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class SecurityConfiguration {
5050
* @return the new instance of {@link SessionAuthenticationStrategy}
5151
*/
5252
@Bean
53-
protected SessionAuthenticationStrategy sessionAuthenticationStrategy() {
53+
SessionAuthenticationStrategy sessionAuthenticationStrategy() {
5454
return new RegisterSessionAuthenticationStrategy(new SessionRegistryImpl());
5555
}
5656

@@ -64,9 +64,9 @@ protected SessionAuthenticationStrategy sessionAuthenticationStrategy() {
6464
* @throws Exception if there is an error setting up the filter chain
6565
*/
6666
@Bean
67-
public SecurityFilterChain filterChain(HttpSecurity httpSecurity,
68-
AysBearerTokenAuthenticationFilter bearerTokenAuthenticationFilter,
69-
CustomAuthenticationEntryPoint customAuthenticationEntryPoint)
67+
SecurityFilterChain filterChain(HttpSecurity httpSecurity,
68+
AysBearerTokenAuthenticationFilter bearerTokenAuthenticationFilter,
69+
CustomAuthenticationEntryPoint customAuthenticationEntryPoint)
7070
throws Exception {
7171

7272
httpSecurity
@@ -109,7 +109,8 @@ private CorsConfigurationSource corsConfigurationSource() {
109109
* @return the new instance of {@link PasswordEncoder}
110110
*/
111111
@Bean
112-
public PasswordEncoder passwordEncoder() {
112+
PasswordEncoder passwordEncoder() {
113113
return new BCryptPasswordEncoder();
114114
}
115+
115116
}

src/main/java/org/ays/auth/service/impl/AysTokenServiceImpl.java

Lines changed: 38 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -48,34 +48,26 @@ class AysTokenServiceImpl implements AysTokenService {
4848
*/
4949
@Override
5050
public AysToken generate(final Map<String, Object> claims) {
51+
5152
final long currentTimeMillis = System.currentTimeMillis();
5253

53-
final Date tokenIssuedAt = new Date(currentTimeMillis);
54+
final JwtBuilder tokenBuilder = this.initializeTokenBuilder(currentTimeMillis);
5455

55-
final Date accessTokenExpiresAt = DateUtils.addMinutes(new Date(currentTimeMillis), tokenConfiguration.getAccessTokenExpireMinute());
56-
final String accessToken = Jwts.builder()
57-
.header()
58-
.add(AysTokenClaims.TYPE.getValue(), OAuth2AccessToken.TokenType.BEARER.getValue())
59-
.and()
56+
final Date accessTokenExpiresAt = DateUtils.addMinutes(
57+
new Date(currentTimeMillis), tokenConfiguration.getAccessTokenExpireMinute()
58+
);
59+
final String accessToken = tokenBuilder
6060
.id(AysRandomUtil.generateUUID())
61-
.issuer(tokenConfiguration.getIssuer())
62-
.issuedAt(tokenIssuedAt)
6361
.expiration(accessTokenExpiresAt)
64-
.signWith(tokenConfiguration.getPrivateKey())
6562
.claims(claims)
6663
.compact();
6764

68-
final Date refreshTokenExpiresAt = DateUtils.addDays(new Date(currentTimeMillis), tokenConfiguration.getRefreshTokenExpireDay());
69-
final JwtBuilder refreshTokenBuilder = Jwts.builder();
70-
final String refreshToken = refreshTokenBuilder
71-
.header()
72-
.add(AysTokenClaims.TYPE.getValue(), OAuth2AccessToken.TokenType.BEARER.getValue())
73-
.and()
65+
final Date refreshTokenExpiresAt = DateUtils.addDays(
66+
new Date(currentTimeMillis), tokenConfiguration.getRefreshTokenExpireDay()
67+
);
68+
final String refreshToken = tokenBuilder
7469
.id(AysRandomUtil.generateUUID())
75-
.issuer(tokenConfiguration.getIssuer())
76-
.issuedAt(tokenIssuedAt)
7770
.expiration(refreshTokenExpiresAt)
78-
.signWith(tokenConfiguration.getPrivateKey())
7971
.claim(AysTokenClaims.USER_ID.getValue(), claims.get(AysTokenClaims.USER_ID.getValue()))
8072
.compact();
8173

@@ -86,6 +78,7 @@ public AysToken generate(final Map<String, Object> claims) {
8678
.build();
8779
}
8880

81+
8982
/**
9083
* Generates an access token based on the provided claims and refresh token.
9184
*
@@ -97,18 +90,13 @@ public AysToken generate(final Map<String, Object> claims) {
9790
public AysToken generate(final Map<String, Object> claims, final String refreshToken) {
9891

9992
final long currentTimeMillis = System.currentTimeMillis();
100-
final Date accessTokenIssuedAt = new Date(currentTimeMillis);
101-
final Date accessTokenExpiresAt = DateUtils.addMinutes(new Date(currentTimeMillis), tokenConfiguration.getAccessTokenExpireMinute());
10293

103-
final String accessToken = Jwts.builder()
104-
.header()
105-
.add(AysTokenClaims.TYPE.getValue(), OAuth2AccessToken.TokenType.BEARER.getValue())
106-
.and()
94+
final Date accessTokenExpiresAt = DateUtils.addMinutes(
95+
new Date(currentTimeMillis), tokenConfiguration.getAccessTokenExpireMinute()
96+
);
97+
final String accessToken = this.initializeTokenBuilder(currentTimeMillis)
10798
.id(AysRandomUtil.generateUUID())
108-
.issuer(tokenConfiguration.getIssuer())
109-
.issuedAt(accessTokenIssuedAt)
11099
.expiration(accessTokenExpiresAt)
111-
.signWith(tokenConfiguration.getPrivateKey())
112100
.claims(claims)
113101
.compact();
114102

@@ -119,6 +107,29 @@ public AysToken generate(final Map<String, Object> claims, final String refreshT
119107
.build();
120108
}
121109

110+
/**
111+
* Initializes a JwtBuilder for creating a JSON Web Token (JWT) with the specified current time.
112+
*
113+
* @param currentTimeMillis The current time in milliseconds to be used as the "issued at" claim.
114+
* @return JwtBuilder instance configured with default and provided settings.
115+
* <p>
116+
* The JWT will have the following claims set:
117+
* - Header with the token type set to Bearer.
118+
* - Issuer claim set to the configured issuer from the token configuration.
119+
* - Issued At (iat) claim set to the specified current time.
120+
* - Signature configured with the private key from the token configuration.
121+
*/
122+
private JwtBuilder initializeTokenBuilder(long currentTimeMillis) {
123+
return Jwts.builder()
124+
.header()
125+
.add(AysTokenClaims.TYPE.getValue(), OAuth2AccessToken.TokenType.BEARER.getValue())
126+
.and()
127+
.issuer(tokenConfiguration.getIssuer())
128+
.issuedAt(new Date(currentTimeMillis))
129+
.signWith(tokenConfiguration.getPrivateKey());
130+
}
131+
132+
122133
/**
123134
* Verifies and validates the given JWT (JSON Web Token).
124135
* This method parses the token using the public key from the {@link AysTokenConfigurationParameter},

0 commit comments

Comments
 (0)