/api/cas-server-core-api-configuration-model/src/main/java/org/apereo/cas/configuration/model/core/config/cloud/SpringCloudConfigurationProperties.java

https://github.com/Jasig/cas · Java · 186 lines · 95 code · 31 blank · 60 comment · 0 complexity · 41c1865760b658b62124e41f487e5fcc MD5 · raw file

  1. package org.apereo.cas.configuration.model.core.config.cloud;
  2. import org.apereo.cas.configuration.model.RestEndpointProperties;
  3. import org.apereo.cas.configuration.model.support.aws.BaseAmazonWebServicesProperties;
  4. import org.apereo.cas.configuration.model.support.dynamodb.AbstractDynamoDbProperties;
  5. import org.apereo.cas.configuration.support.RequiredProperty;
  6. import org.apereo.cas.configuration.support.RequiresModule;
  7. import lombok.Getter;
  8. import lombok.Setter;
  9. import lombok.experimental.Accessors;
  10. import java.io.Serializable;
  11. /**
  12. * This is {@link SpringCloudConfigurationProperties}. This class is only designed here
  13. * to allow the configuration binding logic to recognize the settings. In actuality, the fields
  14. * listed here are not used directly as they are directly accessed and fetched via the runtime
  15. * environment to bootstrap cas settings in form of a property source locator, etc.
  16. *
  17. * @author Misagh Moayyed
  18. * @since 5.3.0
  19. */
  20. @Getter
  21. @Setter
  22. @Accessors(chain = true)
  23. public class SpringCloudConfigurationProperties implements Serializable {
  24. private static final long serialVersionUID = -2749293768878152908L;
  25. /**
  26. * Config config settings.
  27. */
  28. private Cloud cloud = new Cloud();
  29. @Getter
  30. @Setter
  31. public static class Cloud implements Serializable {
  32. private static final long serialVersionUID = -6326706651416825269L;
  33. /**
  34. * MongoDb config settings.
  35. */
  36. private MongoDb mongo = new MongoDb();
  37. /**
  38. * Jdbc config settings.
  39. */
  40. private Jdbc jdbc = new Jdbc();
  41. /**
  42. * REST config settings.
  43. */
  44. private Rest rest = new Rest();
  45. /**
  46. * AWS config settings.
  47. */
  48. private AmazonWebServicesConfiguration aws = new AmazonWebServicesConfiguration();
  49. /**
  50. * AWS DynamoDb config settings.
  51. */
  52. private AmazonDynamoDb dynamoDb = new AmazonDynamoDb();
  53. }
  54. @RequiresModule(name = "cas-server-support-configuration-cloud-mongo")
  55. @Getter
  56. @Setter
  57. @Accessors(chain = true)
  58. public static class MongoDb implements Serializable {
  59. private static final long serialVersionUID = -6509143371334754469L;
  60. /**
  61. * Mongodb URI.
  62. */
  63. @RequiredProperty
  64. private String uri;
  65. }
  66. @RequiresModule(name = "cas-server-support-configuration-cloud-rest")
  67. @Getter
  68. @Accessors(chain = true)
  69. @Setter
  70. public static class Rest extends RestEndpointProperties {
  71. private static final long serialVersionUID = -4509143371334754469L;
  72. }
  73. @RequiresModule(name = "cas-server-support-configuration-cloud-jdbc")
  74. @Getter
  75. @Accessors(chain = true)
  76. @Setter
  77. public static class Jdbc implements Serializable {
  78. private static final long serialVersionUID = -7575240387340025345L;
  79. /**
  80. * SQL statement.
  81. */
  82. private String sql;
  83. /**
  84. * Database url.
  85. */
  86. private String url;
  87. /**
  88. * Database user.
  89. */
  90. private String user;
  91. /**
  92. * Database password.
  93. */
  94. private String password;
  95. /**
  96. * Driver class name.
  97. */
  98. private String driverClass;
  99. }
  100. @RequiresModule(name = "cas-server-support-aws")
  101. @Getter
  102. @Setter
  103. @Accessors(chain = true)
  104. public static class AmazonWebServicesConfiguration implements Serializable {
  105. private static final long serialVersionUID = -124404249388429120L;
  106. /**
  107. * AWS secrets manager settings.
  108. */
  109. private AmazonSecretsManager secretsManager = new AmazonSecretsManager();
  110. /**
  111. * AWS dynamo db settings.
  112. */
  113. private AmazonDynamoDb dynamoDb = new AmazonDynamoDb();
  114. /**
  115. * AWS S3 settings.
  116. */
  117. private AmazonS3 s3 = new AmazonS3();
  118. /**
  119. * AWS SSM settings.
  120. */
  121. private AmazonSystemsManagerParameterStore ssm = new AmazonSystemsManagerParameterStore();
  122. }
  123. @RequiresModule(name = "cas-server-support-configuration-cloud-aws-secretsmanager")
  124. @Getter
  125. @Setter
  126. @Accessors(chain = true)
  127. public static class AmazonSecretsManager extends BaseAmazonWebServicesProperties {
  128. private static final long serialVersionUID = -124404249387429120L;
  129. }
  130. @RequiresModule(name = "cas-server-support-configuration-cloud-aws-ssm")
  131. @Getter
  132. @Setter
  133. @Accessors(chain = true)
  134. public static class AmazonSystemsManagerParameterStore extends BaseAmazonWebServicesProperties {
  135. private static final long serialVersionUID = -224404249387429120L;
  136. }
  137. @RequiresModule(name = "cas-server-support-configuration-cloud-aws-s3")
  138. @Getter
  139. @Setter
  140. @Accessors(chain = true)
  141. public static class AmazonS3 extends BaseAmazonWebServicesProperties {
  142. private static final long serialVersionUID = -124404249387429120L;
  143. /**
  144. * Bucket name that holds the settings.
  145. */
  146. private String bucketName;
  147. }
  148. @RequiresModule(name = "cas-server-support-configuration-cloud-dynamodb")
  149. @Getter
  150. @Setter
  151. @Accessors(chain = true)
  152. public static class AmazonDynamoDb extends AbstractDynamoDbProperties {
  153. private static final long serialVersionUID = -123404249388429120L;
  154. }
  155. }