implemented main part of authorization and token delivery
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
/* © SRSoftware 2024 */
|
||||
package de.srsoftware.oidc.api;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
public record Authorization(String clientId, String userId, Instant expiration) {
|
||||
}
|
||||
@@ -1,13 +1,17 @@
|
||||
/* © SRSoftware 2024 */
|
||||
package de.srsoftware.oidc.api;
|
||||
|
||||
import java.util.Date;
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public interface AuthorizationService {
|
||||
AuthorizationService authorize(Client client, User user, Date expiration);
|
||||
AuthorizationService addCode(Client client, User user, String code);
|
||||
AuthorizationService authorize(Client client, User user, Instant expiration);
|
||||
boolean isAuthorized(Client client, User user);
|
||||
List<User> authorizedUsers(Client client);
|
||||
List<Client> authorizedClients(User user);
|
||||
AuthorizationService revoke(Client client, User user);
|
||||
|
||||
Optional<Authorization> forCode(String code);
|
||||
}
|
||||
|
||||
@@ -2,20 +2,13 @@
|
||||
package de.srsoftware.oidc.api;
|
||||
|
||||
import static de.srsoftware.oidc.api.Constants.*;
|
||||
import static java.lang.System.Logger.Level.WARNING;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
public record Client(String id, String name, String secret, Set<String> redirectUris) {
|
||||
private static System.Logger LOG = System.getLogger(Client.class.getSimpleName());
|
||||
public Map<String, Object> map() {
|
||||
return Map.of(CLIENT_ID, id, NAME, name, SECRET, secret, REDIRECT_URIS, redirectUris);
|
||||
}
|
||||
|
||||
public String generateCode() {
|
||||
LOG.log(WARNING, "{0}.generateCode() not implemented!", getClass().getSimpleName());
|
||||
return UUID.randomUUID().toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,8 +6,7 @@ import java.util.Optional;
|
||||
|
||||
public interface ClientService {
|
||||
Optional<Client> getClient(String clientId);
|
||||
ClientService add(Client client);
|
||||
List<Client> listClients();
|
||||
ClientService remove(Client client);
|
||||
ClientService update(Client client);
|
||||
ClientService save(Client client);
|
||||
}
|
||||
|
||||
@@ -3,14 +3,16 @@ package de.srsoftware.oidc.api;
|
||||
|
||||
public class Constants {
|
||||
public static final String ACCESS_TOKEN = "access_token";
|
||||
public static final String ATUH_CODE = "authorization_code";
|
||||
public static final String APP_NAME = "LightOIDC";
|
||||
public static final String AUTH_CODE = "authorization_code";
|
||||
public static final String BEARER = "Bearer";
|
||||
public static final String CAUSE = "cause";
|
||||
public static final String CLIENT_ID = "client_id";
|
||||
public static final String CLIENT_SECRET = "client_secret";
|
||||
public static final String CODE = "code";
|
||||
public static final String CONFIG_PATH = "LIGHTOIDC_CONFIG_PATH";
|
||||
public static final String CONFIRMED = "confirmed";
|
||||
public static final String DEFAULT_KEY = "default_key";
|
||||
public static final String DAYS = "days";
|
||||
public static final String EXPIRES_IN = "expires_in";
|
||||
public static final String GRANT_TYPE = "grant_type";
|
||||
public static final String ID_TOKEN = "id_token";
|
||||
|
||||
Reference in New Issue
Block a user