Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package io.theurl.framework.security;

/**
* Exception thrown when an account has expired and can no longer be used for authentication or access.
* Carries the identity of the expired account for diagnostics.
*/
@SuppressWarnings("unused")
public class AccountExpiredException extends AccountException {
public AccountExpiredException(String identity) {
super(identity);
}

public AccountExpiredException(String identity, String message) {
super(identity, message);
}

public AccountExpiredException(String identity, String message, Throwable cause) {
super(identity, message, cause);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package io.theurl.framework.security;

/**
* Exception thrown when an account with the specified identity cannot be found.
* Carries the identity of the missing account for diagnostics.
*/
@SuppressWarnings("unused")
public class AccountNotFoundException extends AccountException {
public AccountNotFoundException(String identity) {
super(identity);
}

public AccountNotFoundException(String identity, String message) {
super(identity, message);
}

public AccountNotFoundException(String identity, String message, Throwable cause) {
super(identity, message, cause);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,25 +9,25 @@
*/
@SuppressWarnings("unused")
public class CredentialException extends RuntimeException {
private final String credential;
private final Object credential;
private final Map<String, Object> details = Collections.emptyMap();


public CredentialException(String credential) {
public CredentialException(Object credential) {
this.credential = credential;
}

public CredentialException(String credential, String message) {
public CredentialException(Object credential, String message) {
super(message);
this.credential = credential;
}

public CredentialException(String credential, String message, Throwable cause) {
public CredentialException(Object credential, String message, Throwable cause) {
super(message, cause);
this.credential = credential;
}

public String getCredential() {
public Object getCredential() {
return credential;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package io.theurl.framework.security;

@SuppressWarnings("unused")
public class CredentialExpiredException extends CredentialException {
public CredentialExpiredException(Object credential) {
super(credential);
}

public CredentialExpiredException(Object credential, String message) {
super(credential, message);
}

public CredentialExpiredException(Object credential, String message, Throwable cause) {
super(credential, message, cause);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package io.theurl.framework.security;

@SuppressWarnings("unused")
public class CredentialIncorrectException extends CredentialException {
public CredentialIncorrectException(Object credential) {
super(credential);
}

public CredentialIncorrectException(Object credential, String message) {
super(credential, message);
}

public CredentialIncorrectException(Object credential, String message, Throwable cause) {
super(credential, message, cause);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package io.theurl.framework.security;

@SuppressWarnings("unused")
public class CredentialNotFoundException extends CredentialException {
public CredentialNotFoundException(Object credential) {
super(credential);
}

public CredentialNotFoundException(Object credential, String message) {
super(credential, message);
}

public CredentialNotFoundException(Object credential, String message, Throwable cause) {
super(credential, message, cause);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package io.theurl.framework.security;

@SuppressWarnings("unused")
public class UserClaimTypes {
public static final String SUBJECT = "sub";
public static final String NAME = "name";
public static final String GIVEN_NAME = "given_name";
public static final String FAMILY_NAME = "family_name";
public static final String MIDDLE_NAME = "middle_name";
public static final String NICKNAME = "nickname";
public static final String PREFERRED_USER_NAME = "preferred_username";
public static final String PROFILE = "profile";
public static final String PICTURE = "picture";
public static final String WEBSITE = "website";
public static final String EMAIL = "email";
public static final String EMAIL_VERIFIED = "email_verified";
public static final String GENDER = "gender";
public static final String BIRTHDATE = "birthdate";
public static final String ZONE_INFO = "zoneinfo";
public static final String LOCALE = "locale";
public static final String PHONE_NUMBER = "phone_number";
public static final String PHONE_NUMBER_VERIFIED = "phone_number_verified";
public static final String ADDRESS = "address";
public static final String AUDIENCE = "aud";
public static final String ISSUER = "iss";
public static final String NOT_BEFORE = "nbf";
public static final String EXPIRATION = "exp";
public static final String ISSUED_AT = "iat";
public static final String UPDATED_AT = "updated_at";
public static final String AUTHENTICATION_METHOD = "amr";
public static final String SESSION_ID = "sid";
public static final String AUTHENTICATION_CONTEXT_CLASS_REFERENCE = "acr";
public static final String AUTHENTICATION_TIME = "auth_time";
public static final String AUTHORIZED_PARTY = "azp";
public static final String ACCESS_TOKEN_HASH = "at_hash";
public static final String AUTHORIZATION_CODE_HASH = "c_hash";
public static final String STATE_HASH = "s_hash";
public static final String NONCE = "nonce";
public static final String JWT_ID = "jti";
public static final String EVENTS = "events";
public static final String CLIENT_ID = "client_id";
public static final String SCOPE = "scope";
public static final String ACTOR = "act";
public static final String MAY_ACT = "may_act";
public static final String ID = "id";
public static final String IDENTITY_PROVIDER = "idp";
public static final String ROLE = "role";
public static final String REFERENCE_TOKEN_ID = "reference_token_id";
public static final String CONFIRMATION = "cnf";
public static final String CODE = "code";
public static final String GRANT_TYPE = "grant_type";
public static final String TENANT = "tenant";
public static final String SCHEME = "scheme";
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package io.theurl.framework.security;

@SuppressWarnings("unused")
public class UserPrincipal {
public String getUserId() {
return null;
}
}
10 changes: 5 additions & 5 deletions identity/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,11 @@
<artifactId>mediator</artifactId>
<version>${neroyun.mediator.version}</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.13.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
Expand Down Expand Up @@ -89,11 +94,6 @@
<artifactId>spring-boot-starter-webflux-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>6.2.15</version>
</dependency>
</dependencies>

<build>
Expand Down
5 changes: 5 additions & 0 deletions identity/src/main/resources/application-dev.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
spring:
datasource:
url: ${DB_URL:jdbc:postgresql://localhost:5432/linkyou?currentSchema=public}
username: ${DB_USERNAME:postgres}
password: ${DB_PASSWORD:nerosoft.8888}
13 changes: 12 additions & 1 deletion identity/src/main/resources/application.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,18 @@ server:
port: 8901

spring:
profiles:
active: ${SPRING_PROFILES_ACTIVE:dev}
application:
name: identity
config:
import: optional:file:.env[.properties]
cloud:
config:
enabled: false
uri: ${CONFIG_SERVER_URI:http://localhost:8900}
datasource:
url: ${DB_URL:jdbc:postgresql://localhost:5432/linkyou}
url: ${DB_URL:jdbc:postgresql://localhost:5432/linkyou?currentSchema=public}
username: ${DB_USERNAME:postgres}
password: ${DB_PASSWORD:postgres}
driver-class-name: ${DB_DRIVER:org.postgresql.Driver}
Expand Down Expand Up @@ -39,3 +42,11 @@ external-auth:
microsoft:
client-id: ${MICROSOFT_CLIENT_ID:your-microsoft-client-id}
client-secret: ${MICROSOFT_CLIENT_SECRET:your-microsoft-client-secret}

logging:
file:
path: logs
level:
io.theurl.identity: debug
org.springframework: info
root: info
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package io.theurl.message.domain.aggregate;

import io.theurl.framework.domain.AggregateRoot;

public class Template extends AggregateRoot<Long> {
/**
* Initializes the aggregate with the given id.
*
* @param id the identifier of the aggregate
*/
protected Template(Long id) {
super(id);
}
}
5 changes: 5 additions & 0 deletions message/src/main/resources/application-dev.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
spring:
datasource:
url: ${DB_URL:jdbc:postgresql://localhost:5432/linkyou?currentSchema=public}
username: ${DB_USERNAME:postgres}
password: ${DB_PASSWORD:nerosoft.8888}
5 changes: 4 additions & 1 deletion message/src/main/resources/application.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,18 @@ server:
port: 8902

spring:
profiles:
active: ${SPRING_PROFILES_ACTIVE:dev}
application:
name: message
config:
import: optional:file:.env[.properties]
cloud:
config:
enabled: false
uri: ${CONFIG_SERVER_URI:http://localhost:8900}
datasource:
url: ${DB_URL:jdbc:postgresql://localhost:5432/linkyou}
url: ${DB_URL:jdbc:postgresql://localhost:5432/linkyou?currentSchema=public}
username: ${DB_USERNAME:postgres}
password: ${DB_PASSWORD:postgres}
driver-class-name: ${DB_DRIVER:org.postgresql.Driver}
Expand Down
40 changes: 24 additions & 16 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>4.0.6</version>
</parent>
<groupId>io.theurl</groupId>
<groupId>io.theurl</groupId>
<artifactId>parent</artifactId>
<version>1.0</version>
<version>1.0</version>

<packaging>pom</packaging>

Expand Down Expand Up @@ -47,23 +47,24 @@
<java.version>25</java.version>
<jdk.version>25</jdk.version>
<spring-cloud.version>2025.1.1</spring-cloud.version>
<spring-cloud-alibaba.version>2025.1.0.0</spring-cloud-alibaba.version>
<spring-boot.version>4.0.6</spring-boot.version>
<spring-boot.run.skip>true</spring-boot.run.skip>
<neroyun.mediator.version>1.0.2</neroyun.mediator.version>
<neroyun.mediator.version>1.1.0</neroyun.mediator.version>
</properties>

<repositories>
<repository>
<id>maven-org</id>
<name>Maven Central</name>
<url>https://repo1.maven.org/maven2/</url>
</repository>
<repository>
<id>maven</id>
<name>Maven Official</name>
<url>https://mvnrepository.com/</url>
</repository>
</repositories>
<repository>
<id>maven-org</id>
<name>Maven Central</name>
<url>https://repo1.maven.org/maven2/</url>
</repository>
<repository>
<id>maven</id>
<name>Maven Official</name>
<url>https://mvnrepository.com/</url>
</repository>
</repositories>

<dependencyManagement>
<dependencies>
Expand All @@ -88,6 +89,13 @@
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

Expand Down
Loading