@ -3,6 +3,7 @@ package de.srsoftware.oidc.backend;
@@ -3,6 +3,7 @@ package de.srsoftware.oidc.backend;
import static de.srsoftware.oidc.api.Constants.* ;
import static de.srsoftware.oidc.api.data.Permission.MANAGE_CLIENTS ;
import static de.srsoftware.tools.Error.error ;
import static java.net.HttpURLConnection.* ;
import com.sun.net.httpserver.HttpExchange ;
@ -11,7 +12,6 @@ import de.srsoftware.oidc.api.data.AuthorizedScopes;
@@ -11,7 +12,6 @@ import de.srsoftware.oidc.api.data.AuthorizedScopes;
import de.srsoftware.oidc.api.data.Client ;
import de.srsoftware.oidc.api.data.Session ;
import de.srsoftware.oidc.api.data.User ;
import de.srsoftware.tools.Error ;
import de.srsoftware.tools.Optionals ;
import java.io.IOException ;
import java.time.Duration ;
@ -42,15 +42,15 @@ public class ClientController extends Controller {
@@ -42,15 +42,15 @@ public class ClientController extends Controller {
var user = optUser . get ( ) ;
var json = json ( ex ) ;
var state = json . has ( STATE ) ? json . getString ( STATE ) : null ;
if ( ! json . has ( CLIENT_ID ) ) return badRequest ( ex , Error . of ( ERROR_MISSING_PARAMETER ) . addData ( PARAM , CLIENT_ID , STATE , state ) ) ;
if ( ! json . has ( CLIENT_ID ) ) return badRequest ( ex , error ( ERROR_MISSING_PARAMETER ) . addData ( PARAM , CLIENT_ID , STATE , state ) ) ;
var clientId = json . getString ( CLIENT_ID ) ;
var optClient = clients . getClient ( clientId ) ;
if ( optClient . isEmpty ( ) ) return badRequest ( ex , Error . of ( ERROR_UNKNOWN_CLIENT ) . addData ( CLIENT_ID , clientId , STATE , state ) ) ;
if ( optClient . isEmpty ( ) ) return badRequest ( ex , error ( ERROR_UNKNOWN_CLIENT ) . addData ( CLIENT_ID , clientId , STATE , state ) ) ;
for ( String param : List . of ( SCOPE , RESPONSE_TYPE , REDIRECT_URI ) ) {
if ( ! json . has ( param ) ) return badRequest ( ex , Error . of ( ERROR_MISSING_PARAMETER ) . addData ( PARAM , param , STATE , state ) ) ;
if ( ! json . has ( param ) ) return badRequest ( ex , error ( ERROR_MISSING_PARAMETER ) . addData ( PARAM , param , STATE , state ) ) ;
}
var scopes = toList ( json , SCOPE ) ;
if ( ! scopes . contains ( OPENID ) ) return badRequest ( ex , Error . of ( ERROR_MISSING_PARAMETER ) . addData ( PARAM , "Scope: openid" , STATE , state ) ) ;
if ( ! scopes . contains ( OPENID ) ) return badRequest ( ex , error ( ERROR_MISSING_PARAMETER ) . addData ( PARAM , "Scope: openid" , STATE , state ) ) ;
var responseTypes = toList ( json , RESPONSE_TYPE ) ;
var types = 0 ;
for ( var responseType : responseTypes ) {
@ -60,15 +60,15 @@ public class ClientController extends Controller {
@@ -60,15 +60,15 @@ public class ClientController extends Controller {
types + + ;
break ;
default :
return badRequest ( ex , Error . of ( ERROR_UNSUPPORTED_RESPONSE_TYPE ) . addData ( RESPONSE_TYPE , responseType , STATE , state ) ) ;
return badRequest ( ex , error ( ERROR_UNSUPPORTED_RESPONSE_TYPE ) . addData ( RESPONSE_TYPE , responseType , STATE , state ) ) ;
}
}
if ( types < 1 ) return badRequest ( ex , Error . of ( ERROR_MISSING_CODE_RESPONSE_TYPE ) . addData ( STATE , state ) ) ;
if ( types < 1 ) return badRequest ( ex , error ( ERROR_MISSING_CODE_RESPONSE_TYPE ) . addData ( STATE , state ) ) ;
var client = optClient . get ( ) ;
var redirect = json . getString ( REDIRECT_URI ) ;
if ( ! client . redirectUris ( ) . contains ( redirect ) ) return badRequest ( ex , Error . of ( ERROR_INVALID_REDIRECT ) . addData ( REDIRECT_URI , redirect , STATE , state ) ) ;
if ( ! client . redirectUris ( ) . contains ( redirect ) ) return badRequest ( ex , error ( ERROR_INVALID_REDIRECT ) . addData ( REDIRECT_URI , redirect , STATE , state ) ) ;
if ( json . has ( AUTHORZED ) ) { // user did consent
var authorized = json . getJSONObject ( AUTHORZED ) ;