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 6, 2024
1 parent 0de20eb commit 0a43d9a
Show file tree
Hide file tree
Showing 5 changed files with 389 additions and 14 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
/*
* Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com).
*
* WSO2 LLC. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package org.wso2.carbon.identity.api.server.configs.v1.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonCreator;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.validation.constraints.*;


import io.swagger.annotations.*;
import java.util.Objects;
import javax.validation.Valid;
import javax.xml.bind.annotation.*;

public class AuthenticationType {


@XmlType(name="TypeEnum")
@XmlEnum(String.class)
public enum TypeEnum {

@XmlEnumValue("NONE") NONE(String.valueOf("NONE")), @XmlEnumValue("BEARER") BEARER(String.valueOf("BEARER")), @XmlEnumValue("API_KEY") API_KEY(String.valueOf("API_KEY")), @XmlEnumValue("BASIC") BASIC(String.valueOf("BASIC"));


private String value;

TypeEnum(String v) {
value = v;
}

public String value() {
return value;
}

@Override
public String toString() {
return String.valueOf(value);
}

public static TypeEnum fromValue(String value) {
for (TypeEnum b : TypeEnum.values()) {
if (b.value.equals(value)) {
return b;
}
}
throw new IllegalArgumentException("Unexpected value '" + value + "'");
}
}

private TypeEnum type;
private Map<String, Object> properties = new HashMap<>();


/**
**/
public AuthenticationType type(TypeEnum type) {

this.type = type;
return this;
}

@ApiModelProperty(example = "BASIC", required = true, value = "")
@JsonProperty("type")
@Valid
@NotNull(message = "Property type cannot be null.")

public TypeEnum getType() {
return type;
}
public void setType(TypeEnum type) {
this.type = type;
}

/**
**/
public AuthenticationType properties(Map<String, Object> properties) {

this.properties = properties;
return this;
}

@ApiModelProperty(example = "{\"username\":\"auth_username\",\"password\":\"auth_password\"}", required = true, value = "")
@JsonProperty("properties")
@Valid
@NotNull(message = "Property properties cannot be null.")

public Map<String, Object> getProperties() {
return properties;
}
public void setProperties(Map<String, Object> properties) {
this.properties = properties;
}


public AuthenticationType putPropertiesItem(String key, Object propertiesItem) {
this.properties.put(key, propertiesItem);
return this;
}



@Override
public boolean equals(java.lang.Object o) {

if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
AuthenticationType authenticationType = (AuthenticationType) o;
return Objects.equals(this.type, authenticationType.type) &&
Objects.equals(this.properties, authenticationType.properties);
}

@Override
public int hashCode() {
return Objects.hash(type, properties);
}

@Override
public String toString() {

StringBuilder sb = new StringBuilder();
sb.append("class AuthenticationType {\n");

sb.append(" type: ").append(toIndentedString(type)).append("\n");
sb.append(" properties: ").append(toIndentedString(properties)).append("\n");
sb.append("}");
return sb.toString();
}

/**
* Convert the given object to string with each line indented by 4 spaces
* (except the first line).
*/
private String toIndentedString(java.lang.Object o) {

if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n");
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.util.ArrayList;
import java.util.List;
import org.wso2.carbon.identity.api.server.configs.v1.model.AuthenticatorProperty;
import org.wso2.carbon.identity.api.server.configs.v1.model.Endpoint;
import javax.validation.constraints.*;


Expand Down Expand Up @@ -109,6 +110,8 @@ public static TypeEnum fromValue(String value) {

private List<AuthenticatorProperty> properties = null;

private List<Endpoint> endpoint = null;


/**
**/
Expand Down Expand Up @@ -274,6 +277,32 @@ public Authenticator addPropertiesItem(AuthenticatorProperty propertiesItem) {
return this;
}

/**
**/
public Authenticator endpoint(List<Endpoint> endpoint) {

this.endpoint = endpoint;
return this;
}

@ApiModelProperty(value = "")
@JsonProperty("endpoint")
@Valid
public List<Endpoint> getEndpoint() {
return endpoint;
}
public void setEndpoint(List<Endpoint> endpoint) {
this.endpoint = endpoint;
}

public Authenticator addEndpointItem(Endpoint endpointItem) {
if (this.endpoint == null) {
this.endpoint = new ArrayList<>();
}
this.endpoint.add(endpointItem);
return this;
}



@Override
Expand All @@ -293,12 +322,13 @@ public boolean equals(java.lang.Object o) {
Objects.equals(this.definedBy, authenticator.definedBy) &&
Objects.equals(this.type, authenticator.type) &&
Objects.equals(this.tags, authenticator.tags) &&
Objects.equals(this.properties, authenticator.properties);
Objects.equals(this.properties, authenticator.properties) &&
Objects.equals(this.endpoint, authenticator.endpoint);
}

@Override
public int hashCode() {
return Objects.hash(id, name, displayName, isEnabled, definedBy, type, tags, properties);
return Objects.hash(id, name, displayName, isEnabled, definedBy, type, tags, properties, endpoint);
}

@Override
Expand All @@ -315,6 +345,7 @@ public String toString() {
sb.append(" type: ").append(toIndentedString(type)).append("\n");
sb.append(" tags: ").append(toIndentedString(tags)).append("\n");
sb.append(" properties: ").append(toIndentedString(properties)).append("\n");
sb.append(" endpoint: ").append(toIndentedString(endpoint)).append("\n");
sb.append("}");
return sb.toString();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
/*
* Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com).
*
* WSO2 LLC. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package org.wso2.carbon.identity.api.server.configs.v1.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonCreator;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.wso2.carbon.identity.api.server.configs.v1.model.AuthenticationType;
import javax.validation.constraints.*;


import io.swagger.annotations.*;
import java.util.Objects;
import javax.validation.Valid;
import javax.xml.bind.annotation.*;

public class Endpoint {

private String uri;
private AuthenticationType authentication;

/**
**/
public Endpoint uri(String uri) {

this.uri = uri;
return this;
}

@ApiModelProperty(example = "https://abc.com/token", value = "")
@JsonProperty("uri")
@Valid @Pattern(regexp="^https?://.+")
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}

/**
**/
public Endpoint authentication(AuthenticationType authentication) {

this.authentication = authentication;
return this;
}

@ApiModelProperty(value = "")
@JsonProperty("authentication")
@Valid
public AuthenticationType getAuthentication() {
return authentication;
}
public void setAuthentication(AuthenticationType authentication) {
this.authentication = authentication;
}



@Override
public boolean equals(java.lang.Object o) {

if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Endpoint endpoint = (Endpoint) o;
return Objects.equals(this.uri, endpoint.uri) &&
Objects.equals(this.authentication, endpoint.authentication);
}

@Override
public int hashCode() {
return Objects.hash(uri, authentication);
}

@Override
public String toString() {

StringBuilder sb = new StringBuilder();
sb.append("class Endpoint {\n");

sb.append(" uri: ").append(toIndentedString(uri)).append("\n");
sb.append(" authentication: ").append(toIndentedString(authentication)).append("\n");
sb.append("}");
return sb.toString();
}

/**
* Convert the given object to string with each line indented by 4 spaces
* (except the first line).
*/
private String toIndentedString(java.lang.Object o) {

if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n");
}
}

Loading

0 comments on commit 0a43d9a

Please sign in to comment.