| margaretha | 835178d | 2018-08-15 19:04:03 +0200 | [diff] [blame] | 1 | package de.ids_mannheim.korap.oauth2.dto; |
| 2 | |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 3 | import java.time.ZonedDateTime; |
| 4 | |
| margaretha | 835178d | 2018-08-15 19:04:03 +0200 | [diff] [blame] | 5 | import com.fasterxml.jackson.annotation.JsonInclude; |
| 6 | import com.fasterxml.jackson.annotation.JsonInclude.Include; |
| margaretha | d716312 | 2022-04-11 09:42:41 +0200 | [diff] [blame] | 7 | import com.fasterxml.jackson.annotation.JsonProperty; |
| margaretha | 977fabe | 2022-04-28 09:23:47 +0200 | [diff] [blame] | 8 | import com.fasterxml.jackson.databind.JsonNode; |
| margaretha | 835178d | 2018-08-15 19:04:03 +0200 | [diff] [blame] | 9 | |
| margaretha | d716312 | 2022-04-11 09:42:41 +0200 | [diff] [blame] | 10 | import de.ids_mannheim.korap.exceptions.KustvaktException; |
| margaretha | 835178d | 2018-08-15 19:04:03 +0200 | [diff] [blame] | 11 | import de.ids_mannheim.korap.oauth2.constant.OAuth2ClientType; |
| 12 | import de.ids_mannheim.korap.oauth2.entity.OAuth2Client; |
| margaretha | d716312 | 2022-04-11 09:42:41 +0200 | [diff] [blame] | 13 | import de.ids_mannheim.korap.utils.JsonUtils; |
| margaretha | 835178d | 2018-08-15 19:04:03 +0200 | [diff] [blame] | 14 | |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 15 | /** |
| 16 | * Describes information about an OAuth2 client. |
| margaretha | 398f472 | 2019-01-09 19:07:20 +0100 | [diff] [blame] | 17 | * |
| 18 | * @author margaretha |
| 19 | * |
| 20 | */ |
| margaretha | 835178d | 2018-08-15 19:04:03 +0200 | [diff] [blame] | 21 | @JsonInclude(Include.NON_EMPTY) |
| margaretha | 6475502 | 2024-06-18 10:30:59 +0200 | [diff] [blame^] | 22 | public class OAuth2ClientInfoDto implements Comparable<OAuth2ClientInfoDto>{ |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 23 | @JsonProperty("super") |
| 24 | private boolean isSuper; |
| margaretha | 835178d | 2018-08-15 19:04:03 +0200 | [diff] [blame] | 25 | |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 26 | @JsonProperty("client_id") |
| 27 | private String clientId; |
| 28 | @JsonProperty("client_name") |
| 29 | private String clientName; |
| 30 | @JsonProperty("client_type") |
| 31 | private OAuth2ClientType clientType; |
| 32 | @JsonProperty("client_description") |
| margaretha | 835178d | 2018-08-15 19:04:03 +0200 | [diff] [blame] | 33 | private String description; |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 34 | @JsonProperty("client_url") |
| margaretha | c20cd34 | 2019-11-14 10:59:39 +0100 | [diff] [blame] | 35 | private String url; |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 36 | @JsonProperty("client_redirect_uri") |
| margaretha | 3ef1b81 | 2022-04-06 11:32:54 +0200 | [diff] [blame] | 37 | private String redirect_uri; |
| margaretha | d716312 | 2022-04-11 09:42:41 +0200 | [diff] [blame] | 38 | @JsonProperty("registration_date") |
| 39 | private String registrationDate; |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 40 | @JsonProperty("registered_by") |
| 41 | private String registeredBy; |
| margaretha | 977fabe | 2022-04-28 09:23:47 +0200 | [diff] [blame] | 42 | @JsonProperty("refresh_token_expiry") |
| margaretha | 60b65d4 | 2024-06-06 09:05:16 +0200 | [diff] [blame] | 43 | @JsonInclude(Include.NON_DEFAULT) |
| margaretha | 977fabe | 2022-04-28 09:23:47 +0200 | [diff] [blame] | 44 | private int refreshTokenExpiry; // in seconds |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 45 | |
| margaretha | d716312 | 2022-04-11 09:42:41 +0200 | [diff] [blame] | 46 | @JsonProperty("permitted") |
| 47 | private boolean isPermitted; |
| 48 | private JsonNode source; |
| margaretha | 835178d | 2018-08-15 19:04:03 +0200 | [diff] [blame] | 49 | |
| margaretha | d716312 | 2022-04-11 09:42:41 +0200 | [diff] [blame] | 50 | public OAuth2ClientInfoDto (OAuth2Client client) throws KustvaktException { |
| margaretha | 60b65d4 | 2024-06-06 09:05:16 +0200 | [diff] [blame] | 51 | this(client,true); |
| 52 | } |
| 53 | |
| 54 | public OAuth2ClientInfoDto (OAuth2Client client, boolean showAllInfo) throws KustvaktException { |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 55 | this.setClientId(client.getId()); |
| 56 | this.setClientName(client.getName()); |
| 57 | this.setDescription(client.getDescription()); |
| 58 | this.setClientType(client.getType()); |
| 59 | this.setUrl(client.getUrl()); |
| 60 | this.setClientType(client.getType()); |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 61 | this.setPermitted(client.isPermitted()); |
| margaretha | 60b65d4 | 2024-06-06 09:05:16 +0200 | [diff] [blame] | 62 | |
| margaretha | d716312 | 2022-04-11 09:42:41 +0200 | [diff] [blame] | 63 | String source = client.getSource(); |
| margaretha | 60b65d4 | 2024-06-06 09:05:16 +0200 | [diff] [blame] | 64 | |
| 65 | if (showAllInfo) { |
| 66 | this.setSuper(client.isSuper()); |
| 67 | this.setRedirect_uri(client.getRedirectURI()); |
| 68 | this.setRegisteredBy(client.getRegisteredBy()); |
| 69 | ZonedDateTime registrationDate = client.getRegistrationDate(); |
| 70 | if (registrationDate != null) { |
| 71 | this.setRegistrationDate(registrationDate.toString()); |
| 72 | } |
| 73 | if (client.getType().equals(OAuth2ClientType.CONFIDENTIAL)) { |
| 74 | this.setRefreshTokenExpiry(client.getRefreshTokenExpiry()); |
| 75 | } |
| 76 | |
| 77 | if (source != null && !source.isEmpty()) { |
| 78 | this.source = JsonUtils.readTree(source); |
| 79 | } |
| margaretha | d716312 | 2022-04-11 09:42:41 +0200 | [diff] [blame] | 80 | } |
| margaretha | 60b65d4 | 2024-06-06 09:05:16 +0200 | [diff] [blame] | 81 | else { //plugins |
| 82 | if (source != null && !source.isEmpty()) { |
| 83 | this.source = JsonUtils.readTree(source); |
| 84 | } |
| 85 | } |
| margaretha | 835178d | 2018-08-15 19:04:03 +0200 | [diff] [blame] | 86 | } |
| margaretha | 6475502 | 2024-06-18 10:30:59 +0200 | [diff] [blame^] | 87 | |
| 88 | @Override |
| 89 | public int compareTo (OAuth2ClientInfoDto o) { |
| 90 | return this.getClientName().compareTo(o.getClientName()); |
| 91 | } |
| 92 | |
| margaretha | 835178d | 2018-08-15 19:04:03 +0200 | [diff] [blame] | 93 | |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 94 | public boolean isSuper () { |
| margaretha | 835178d | 2018-08-15 19:04:03 +0200 | [diff] [blame] | 95 | return isSuper; |
| 96 | } |
| 97 | |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 98 | public void setSuper (boolean isSuper) { |
| margaretha | 835178d | 2018-08-15 19:04:03 +0200 | [diff] [blame] | 99 | this.isSuper = isSuper; |
| 100 | } |
| 101 | |
| margaretha | 835178d | 2018-08-15 19:04:03 +0200 | [diff] [blame] | 102 | public String getRegisteredBy () { |
| 103 | return registeredBy; |
| 104 | } |
| 105 | |
| 106 | public void setRegisteredBy (String registeredBy) { |
| 107 | this.registeredBy = registeredBy; |
| 108 | } |
| 109 | |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 110 | public String getClientId () { |
| 111 | return clientId; |
| margaretha | 835178d | 2018-08-15 19:04:03 +0200 | [diff] [blame] | 112 | } |
| 113 | |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 114 | public void setClientId (String clientId) { |
| 115 | this.clientId = clientId; |
| 116 | } |
| 117 | |
| 118 | public String getClientName () { |
| 119 | return clientName; |
| 120 | } |
| 121 | |
| 122 | public void setClientName (String clientName) { |
| 123 | this.clientName = clientName; |
| 124 | } |
| 125 | |
| 126 | public OAuth2ClientType getClientType () { |
| 127 | return clientType; |
| 128 | } |
| 129 | |
| 130 | public void setClientType (OAuth2ClientType clientType) { |
| 131 | this.clientType = clientType; |
| 132 | } |
| 133 | |
| 134 | public String getDescription () { |
| 135 | return description; |
| 136 | } |
| 137 | |
| 138 | public void setDescription (String description) { |
| 139 | this.description = description; |
| 140 | } |
| 141 | |
| 142 | public String getUrl () { |
| 143 | return url; |
| 144 | } |
| 145 | |
| 146 | public void setUrl (String url) { |
| 147 | this.url = url; |
| margaretha | 835178d | 2018-08-15 19:04:03 +0200 | [diff] [blame] | 148 | } |
| 149 | |
| margaretha | 3ef1b81 | 2022-04-06 11:32:54 +0200 | [diff] [blame] | 150 | public String getRedirect_uri () { |
| 151 | return redirect_uri; |
| 152 | } |
| 153 | |
| 154 | public void setRedirect_uri (String redirect_uri) { |
| 155 | this.redirect_uri = redirect_uri; |
| 156 | } |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 157 | |
| margaretha | d716312 | 2022-04-11 09:42:41 +0200 | [diff] [blame] | 158 | public String getRegistrationDate () { |
| 159 | return registrationDate; |
| 160 | } |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 161 | |
| margaretha | d716312 | 2022-04-11 09:42:41 +0200 | [diff] [blame] | 162 | public void setRegistrationDate (String registrationDate) { |
| 163 | this.registrationDate = registrationDate; |
| 164 | } |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 165 | |
| margaretha | 977fabe | 2022-04-28 09:23:47 +0200 | [diff] [blame] | 166 | public int getRefreshTokenExpiry () { |
| 167 | return refreshTokenExpiry; |
| 168 | } |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 169 | |
| margaretha | 977fabe | 2022-04-28 09:23:47 +0200 | [diff] [blame] | 170 | public void setRefreshTokenExpiry (int refreshTokenExpiry) { |
| 171 | this.refreshTokenExpiry = refreshTokenExpiry; |
| 172 | } |
| margaretha | 3ef1b81 | 2022-04-06 11:32:54 +0200 | [diff] [blame] | 173 | |
| margaretha | 79f0144 | 2022-05-04 12:03:47 +0200 | [diff] [blame] | 174 | public boolean isPermitted () { |
| 175 | return isPermitted; |
| 176 | } |
| 177 | |
| 178 | public void setPermitted (boolean isPermitted) { |
| 179 | this.isPermitted = isPermitted; |
| 180 | } |
| 181 | |
| 182 | public JsonNode getSource () { |
| 183 | return source; |
| 184 | } |
| 185 | |
| 186 | public void setSource (JsonNode source) { |
| 187 | this.source = source; |
| 188 | } |
| margaretha | 835178d | 2018-08-15 19:04:03 +0200 | [diff] [blame] | 189 | } |