Public Access
Changed from JWT token to public/privat key
This commit is contained in:
1 parent
4859e74d45
commit
9114eb096b
5 files changed
+161
-132
No files matched your search
@@ -1,109 +1,109 @@
|
||||
package auth_service.configuration.security;
|
||||
|
||||
import auth_service.shared.test.AbstractUnitTest;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.Mock;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
/**
|
||||
* Tests for JwtService.
|
||||
*/
|
||||
class JwtServiceTest extends AbstractUnitTest {
|
||||
|
||||
@Mock
|
||||
private JwtConfig jwtConfig;
|
||||
|
||||
private JwtService jwtService;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
when(jwtConfig.getSecret()).thenReturn("verysecretkeythatmustbeatleast32characterslongforhmacsha");
|
||||
jwtService = new JwtService(jwtConfig);
|
||||
}
|
||||
|
||||
@Test
|
||||
void generateToken_Success() {
|
||||
// Arrange
|
||||
var userId = "0815";
|
||||
var email = "test@example.com";
|
||||
|
||||
// Act
|
||||
var token = jwtService.generateToken(userId, email, null);
|
||||
|
||||
// Assert
|
||||
assertNotNull(token);
|
||||
assertFalse(token.isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
void extractEmail_Success() {
|
||||
// Arrange
|
||||
var userId = "0815";
|
||||
var email = "test@example.com";
|
||||
var token = jwtService.generateToken(userId, email, null);
|
||||
|
||||
// Act
|
||||
var extractedEmail = jwtService.extractEmail(token);
|
||||
|
||||
// Assert
|
||||
assertEquals(email, extractedEmail);
|
||||
}
|
||||
|
||||
@Test
|
||||
void extractUserId_Success() {
|
||||
// Arrange
|
||||
var userId = "0815";
|
||||
var email = "test@example.com";
|
||||
var token = jwtService.generateToken(userId, email, null);
|
||||
|
||||
// Act
|
||||
var extractedUserId = jwtService.extractUserId(token);
|
||||
|
||||
// Assert
|
||||
assertEquals(userId, extractedUserId);
|
||||
}
|
||||
|
||||
@Test
|
||||
void extractSteamId_Success() {
|
||||
// Arrange
|
||||
var userId = "0815";
|
||||
var email = "test@example.com";
|
||||
var steamId = 123456789L;
|
||||
var token = jwtService.generateToken(userId, email, steamId);
|
||||
|
||||
// Act
|
||||
var extractedSteamId = jwtService.extractSteamId(token);
|
||||
|
||||
// Assert
|
||||
assertEquals(steamId, extractedSteamId);
|
||||
}
|
||||
|
||||
@Test
|
||||
void isTokenValid_Success() {
|
||||
// Arrange
|
||||
var userId = "0815";
|
||||
var email = "test@example.com";
|
||||
var token = jwtService.generateToken(userId, email, null);
|
||||
|
||||
// Act
|
||||
var isValid = jwtService.isTokenValid(token);
|
||||
|
||||
// Assert
|
||||
assertTrue(isValid);
|
||||
}
|
||||
|
||||
@Test
|
||||
void isTokenValid_Failure() {
|
||||
// Arrange
|
||||
var invalidToken = "invalid-token";
|
||||
|
||||
// Act
|
||||
var isValid = jwtService.isTokenValid(invalidToken);
|
||||
|
||||
// Assert
|
||||
assertFalse(isValid);
|
||||
}
|
||||
}
|
||||
package auth_service.configuration.security;
|
||||
|
||||
import auth_service.shared.test.AbstractUnitTest;
|
||||
import io.jsonwebtoken.Jwts;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.Mock;
|
||||
|
||||
import java.security.KeyFactory;
|
||||
import java.security.KeyPair;
|
||||
import java.security.KeyPairGenerator;
|
||||
import java.security.PublicKey;
|
||||
import java.security.spec.X509EncodedKeySpec;
|
||||
import java.util.Base64;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.mockito.Mockito.lenient;
|
||||
|
||||
/**
|
||||
* Tests for JwtService (EdDSA / Ed25519).
|
||||
*/
|
||||
class JwtServiceTest extends AbstractUnitTest {
|
||||
|
||||
private static final String KID = "test-key-1";
|
||||
|
||||
@Mock
|
||||
private JwtConfig jwtConfig;
|
||||
|
||||
private JwtService jwtService;
|
||||
private PublicKey publicKey;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() throws Exception {
|
||||
KeyPair keyPair = KeyPairGenerator.getInstance("Ed25519").generateKeyPair();
|
||||
String privateB64 = Base64.getEncoder().encodeToString(keyPair.getPrivate().getEncoded());
|
||||
String publicB64 = Base64.getEncoder().encodeToString(keyPair.getPublic().getEncoded());
|
||||
|
||||
lenient().when(jwtConfig.getPrivateKey()).thenReturn(privateB64);
|
||||
lenient().when(jwtConfig.getPublicKey()).thenReturn(publicB64);
|
||||
lenient().when(jwtConfig.getKid()).thenReturn(KID);
|
||||
|
||||
publicKey = KeyFactory.getInstance("Ed25519")
|
||||
.generatePublic(new X509EncodedKeySpec(Base64.getDecoder().decode(publicB64)));
|
||||
|
||||
jwtService = new JwtService(jwtConfig);
|
||||
jwtService.init();
|
||||
}
|
||||
|
||||
@Test
|
||||
void generateToken_Success() {
|
||||
var token = jwtService.generateToken("0815", "test@example.com", null);
|
||||
|
||||
assertNotNull(token);
|
||||
assertFalse(token.isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
void generateToken_setsKidHeader() {
|
||||
var token = jwtService.generateToken("0815", "test@example.com", null);
|
||||
|
||||
var header = Jwts.parser()
|
||||
.verifyWith(publicKey)
|
||||
.build()
|
||||
.parseSignedClaims(token)
|
||||
.getHeader();
|
||||
|
||||
assertEquals(KID, header.getKeyId());
|
||||
assertEquals("EdDSA", header.getAlgorithm());
|
||||
}
|
||||
|
||||
@Test
|
||||
void extractEmail_Success() {
|
||||
var email = "test@example.com";
|
||||
var token = jwtService.generateToken("0815", email, null);
|
||||
|
||||
assertEquals(email, jwtService.extractEmail(token));
|
||||
}
|
||||
|
||||
@Test
|
||||
void extractUserId_Success() {
|
||||
var userId = "0815";
|
||||
var token = jwtService.generateToken(userId, "test@example.com", null);
|
||||
|
||||
assertEquals(userId, jwtService.extractUserId(token));
|
||||
}
|
||||
|
||||
@Test
|
||||
void extractSteamId_Success() {
|
||||
var steamId = 123456789L;
|
||||
var token = jwtService.generateToken("0815", "test@example.com", steamId);
|
||||
|
||||
assertEquals(steamId, jwtService.extractSteamId(token));
|
||||
}
|
||||
|
||||
@Test
|
||||
void isTokenValid_Success() {
|
||||
var token = jwtService.generateToken("0815", "test@example.com", null);
|
||||
|
||||
assertTrue(jwtService.isTokenValid(token));
|
||||
}
|
||||
|
||||
@Test
|
||||
void isTokenValid_Failure() {
|
||||
assertFalse(jwtService.isTokenValid("invalid-token"));
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user