Skip to content

Commit

Permalink
Update APIs to support custom authentication management.
Browse files Browse the repository at this point in the history
  • Loading branch information
Thisara-Welmilla committed Nov 7, 2024
1 parent 6dd1f33 commit 5e90c05
Show file tree
Hide file tree
Showing 4 changed files with 338 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
import org.wso2.carbon.identity.api.server.authenticators.v1.model.Authenticator;
import org.wso2.carbon.identity.api.server.authenticators.v1.model.ConnectedApps;
import org.wso2.carbon.identity.api.server.authenticators.v1.model.Error;
import org.wso2.carbon.identity.api.server.authenticators.v1.model.UserDefinedLocalAuthenticatorCreation;
import org.wso2.carbon.identity.api.server.authenticators.v1.model.UserDefinedLocalAuthenticatorUpdate;
import org.wso2.carbon.identity.api.server.authenticators.v1.AuthenticatorsApiService;

import javax.validation.Valid;
Expand Down Expand Up @@ -91,6 +93,54 @@ public Response authenticatorsMetaTagsGet() {
return delegate.authenticatorsMetaTagsGet();
}

@Valid
@POST
@Path("/custom")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@ApiOperation(value = "Create a new user defined local authenticator. ", notes = "This API provides the capability to create a new user defined local authenticator. <br> <b>Permission required:</b> <br> * /permission/admin/manage/custom_authenticator/create <br> <b>Scope required:</b> <br> * internal_custom_authenticator_create <br> ", response = Authenticator.class, authorizations = {
@Authorization(value = "BasicAuth"),
@Authorization(value = "OAuth2", scopes = {

})
}, tags={ "User defined local authenticators", })
@ApiResponses(value = {
@ApiResponse(code = 201, message = "Successful response", response = Authenticator.class),
@ApiResponse(code = 400, message = "Bad Request", response = Error.class),
@ApiResponse(code = 401, message = "Unauthorized", response = Void.class),
@ApiResponse(code = 403, message = "Forbidden", response = Void.class),
@ApiResponse(code = 409, message = "Conflict", response = Error.class),
@ApiResponse(code = 500, message = "Server Error", response = Error.class)
})
public Response createUserDefinedLocalAuthenticator(@ApiParam(value = "This represents the user defined local authenticator to be created." ,required=true) @Valid UserDefinedLocalAuthenticatorCreation userDefinedLocalAuthenticatorCreation) {

return delegate.createUserDefinedLocalAuthenticator(userDefinedLocalAuthenticatorCreation );
}

@Valid
@DELETE
@Path("/custom/{authenticator-id}")

@Produces({ "application/json" })
@ApiOperation(value = "Delete a user defined local authenticator. ", notes = "This API provides the capability to delete a user defined local authenticators. <br> <b>Permission required:</b> <br> * /permission/admin/manage/custom_authenticator/delete <br> <b>Scope required:</b> <br> * internal_custom_authenticator_delete <br> ", response = Void.class, authorizations = {
@Authorization(value = "BasicAuth"),
@Authorization(value = "OAuth2", scopes = {

})
}, tags={ "User defined local authenticators", })
@ApiResponses(value = {
@ApiResponse(code = 204, message = "Successful response", response = Void.class),
@ApiResponse(code = 400, message = "Bad Request", response = Error.class),
@ApiResponse(code = 401, message = "Unauthorized", response = Void.class),
@ApiResponse(code = 403, message = "Forbidden", response = Void.class),
@ApiResponse(code = 409, message = "Conflict", response = Error.class),
@ApiResponse(code = 500, message = "Server Error", response = Error.class)
})
public Response deleteUserDefinedLocalAuthenticator(@ApiParam(value = "ID of an authenticator",required=true) @PathParam("authenticator-id") String authenticatorId) {

return delegate.deleteUserDefinedLocalAuthenticator(authenticatorId );
}

@Valid
@GET
@Path("/{authenticator-id}/connected-apps")
Expand All @@ -101,7 +151,7 @@ public Response authenticatorsMetaTagsGet() {
@Authorization(value = "OAuth2", scopes = {

})
}, tags={ "Connected apps of local authenticators" })
}, tags={ "Connected apps of local authenticators", })
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Successful Response", response = ConnectedApps.class),
@ApiResponse(code = 400, message = "Bad Request", response = Error.class),
Expand All @@ -115,4 +165,28 @@ public Response getConnectedAppsOfLocalAuthenticator(@ApiParam(value = "ID of an
return delegate.getConnectedAppsOfLocalAuthenticator(authenticatorId, limit, offset );
}

@Valid
@PATCH
@Path("/custom/{authenticator-id}")
@Consumes({ "application/json" })
@Produces({ "application/json" })
@ApiOperation(value = "Update a user defined local authenticator. ", notes = "This API provides the capability to update a user defined local authenticator configurations. <br> <b>Permission required:</b> <br> * /permission/admin/manage/custom_authenticator/update <br> <b>Scope required:</b> <br> * internal_custom_authenticator_update <br> ", response = Authenticator.class, authorizations = {
@Authorization(value = "BasicAuth"),
@Authorization(value = "OAuth2", scopes = {

})
}, tags={ "User defined local authenticators" })
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Successful response", response = Authenticator.class),
@ApiResponse(code = 400, message = "Bad Request", response = Error.class),
@ApiResponse(code = 401, message = "Unauthorized", response = Void.class),
@ApiResponse(code = 403, message = "Forbidden", response = Void.class),
@ApiResponse(code = 409, message = "Conflict", response = Error.class),
@ApiResponse(code = 500, message = "Server Error", response = Error.class)
})
public Response updateUserDefinedLocalAuthenticator(@ApiParam(value = "ID of an authenticator",required=true) @PathParam("authenticator-id") String authenticatorId, @ApiParam(value = "This represents the user defined local authenticator to be created." ,required=true) @Valid UserDefinedLocalAuthenticatorUpdate userDefinedLocalAuthenticatorUpdate) {

return delegate.updateUserDefinedLocalAuthenticator(authenticatorId, userDefinedLocalAuthenticatorUpdate );
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
import org.wso2.carbon.identity.api.server.authenticators.v1.model.Authenticator;
import org.wso2.carbon.identity.api.server.authenticators.v1.model.ConnectedApps;
import org.wso2.carbon.identity.api.server.authenticators.v1.model.Error;
import org.wso2.carbon.identity.api.server.authenticators.v1.model.UserDefinedLocalAuthenticatorCreation;
import org.wso2.carbon.identity.api.server.authenticators.v1.model.UserDefinedLocalAuthenticatorUpdate;
import javax.ws.rs.core.Response;


Expand All @@ -34,5 +36,11 @@ public interface AuthenticatorsApiService {

public Response authenticatorsMetaTagsGet();

public Response createUserDefinedLocalAuthenticator(UserDefinedLocalAuthenticatorCreation userDefinedLocalAuthenticatorCreation);

public Response deleteUserDefinedLocalAuthenticator(String authenticatorId);

public Response getConnectedAppsOfLocalAuthenticator(String authenticatorId, Integer limit, Integer offset);

public Response updateUserDefinedLocalAuthenticator(String authenticatorId, UserDefinedLocalAuthenticatorUpdate userDefinedLocalAuthenticatorUpdate);
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.wso2.carbon.identity.api.server.authenticators.v1.AuthenticatorsApiService;
import org.wso2.carbon.identity.api.server.authenticators.v1.core.ServerAuthenticatorManagementService;
import org.wso2.carbon.identity.api.server.authenticators.v1.model.UserDefinedLocalAuthenticatorCreation;
import org.wso2.carbon.identity.api.server.authenticators.v1.model.UserDefinedLocalAuthenticatorUpdate;

import javax.ws.rs.core.Response;

Expand All @@ -42,10 +44,31 @@ public Response authenticatorsMetaTagsGet() {
return Response.ok().entity(authenticatorManagementService.getTags()).build();
}

@Override
public Response createUserDefinedLocalAuthenticator(UserDefinedLocalAuthenticatorCreation userDefinedLocalAuthenticatorCreation) {

// do some magic!
return Response.ok().entity("magic!").build();
}

@Override
public Response deleteUserDefinedLocalAuthenticator(String authenticatorId) {

// do some magic!
return Response.ok().entity("magic!").build();
}

@Override
public Response getConnectedAppsOfLocalAuthenticator(String authenticatorId, Integer limit, Integer offset) {

return Response.ok().entity(authenticatorManagementService
.getConnectedAppsOfLocalAuthenticator(authenticatorId, limit, offset)).build();
}

@Override
public Response updateUserDefinedLocalAuthenticator(String authenticatorId, UserDefinedLocalAuthenticatorUpdate userDefinedLocalAuthenticatorUpdate) {

// do some magic!
return Response.ok().entity("magic!").build();
}
}
Loading

0 comments on commit 5e90c05

Please sign in to comment.