2
0

maxkey-mgt-security.xml 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:mvc="http://www.springframework.org/schema/mvc"
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6. xmlns:p="http://www.springframework.org/schema/p"
  7. xmlns:util="http://www.springframework.org/schema/util"
  8. xsi:schemaLocation="
  9. http://www.springframework.org/schema/beans
  10. http://www.springframework.org/schema/beans/spring-beans.xsd
  11. http://www.springframework.org/schema/context
  12. http://www.springframework.org/schema/context/spring-context.xsd
  13. http://www.springframework.org/schema/util
  14. http://www.springframework.org/schema/util/spring-util.xsd
  15. http://www.springframework.org/schema/mvc
  16. http://www.springframework.org/schema/mvc/spring-mvc.xsd">
  17. <!-- enable autowire -->
  18. <context:annotation-config />
  19. <!-- language select must remove -->
  20. <mvc:annotation-driven />
  21. <!--
  22. * Self-issued Provider Metadata
  23. *
  24. * http://openid.net/specs/openid-connect-core-1_0.html#SelfIssued
  25. * -->
  26. <bean id="oidcProviderMetadata" class="org.maxkey.config.oidc.OIDCProviderMetadataDetails">
  27. <property name="issuer" value="${config.oidc.metadata.issuer}" />
  28. <property name="authorizationEndpoint" value="${config.oidc.metadata.authorizationEndpoint}" />
  29. <property name="tokenEndpoint" value="${config.oidc.metadata.tokenEndpoint}" />
  30. <property name="userinfoEndpoint" value="${config.oidc.metadata.userinfoEndpoint}" />
  31. </bean>
  32. <bean id="jwkSetKeyStore" class="org.maxkey.crypto.jose.keystore.JWKSetKeyStore">
  33. <property name="location" value="classpath:config/keystore.jwks" />
  34. </bean>
  35. <bean id="jwtSignerValidationService" class="org.maxkey.crypto.jwt.signer.service.impl.DefaultJwtSigningAndValidationService">
  36. <constructor-arg name="keyStore" ref="jwkSetKeyStore" />
  37. <property name="defaultSignerKeyId" value="maxkey_rsa" />
  38. <property name="defaultSigningAlgorithmName" value="RS256" />
  39. </bean>
  40. <bean id="jwtEncryptionService" class="org.maxkey.crypto.jwt.encryption.service.impl.DefaultJwtEncryptionAndDecryptionService">
  41. <constructor-arg name="keyStore" ref="jwkSetKeyStore" />
  42. <property name="defaultAlgorithm" value="RSA1_5" />
  43. <property name="defaultDecryptionKeyId" value="maxkey_rsa" />
  44. <property name="defaultEncryptionKeyId" value="maxkey_rsa" />
  45. </bean>
  46. <bean id="jwtLoginService" class="org.maxkey.authn.support.jwt.JwtLoginService">
  47. <property name="jwtSignerValidationService" ref="jwtSignerValidationService" />
  48. <property name="jwtProviderMetadata" ref="oidcProviderMetadata" />
  49. </bean>
  50. <!-- web Controller InterceptorAdapter -->
  51. <mvc:interceptors>
  52. <!-- web Controller InterceptorAdapter for platform permission -->
  53. <mvc:interceptor>
  54. <mvc:mapping path="/main*/**" />
  55. <mvc:mapping path="/main*/**" />
  56. <mvc:mapping path="/orgs*/**" />
  57. <mvc:mapping path="/userinfo*/**" />
  58. <mvc:mapping path="/apps*/**" />
  59. <mvc:mapping path="/app*/**" />
  60. <mvc:mapping path="/groups*/**" />
  61. <mvc:mapping path="/groupMember*/**" />
  62. <mvc:mapping path="/groupPrivileges*/**" />
  63. <mvc:mapping path="/config*/**" />
  64. <mvc:mapping path="/logs*/**" />
  65. <bean class="org.maxkey.web.interceptor.PermissionAdapter" />
  66. </mvc:interceptor>
  67. <!-- web Controller InterceptorAdapter for platform log -->
  68. <mvc:interceptor>
  69. <mvc:mapping path="/users/*" />
  70. <mvc:mapping path="/userinfo/*" />
  71. <mvc:mapping path="/enterprises/*" />
  72. <mvc:mapping path="/employees/*" />
  73. <mvc:mapping path="/authInfo/*" />
  74. <mvc:mapping path="/usercenter/*"/>
  75. <mvc:mapping path="/retrievePassword/*"/>
  76. <mvc:mapping path="/roles/*"/>
  77. <mvc:mapping path="/applications/*"/>
  78. <mvc:mapping path="/approles/*"/>
  79. <bean class="org.maxkey.web.interceptor.HistoryLogsAdapter" />
  80. </mvc:interceptor>
  81. <ref bean="localeChangeInterceptor" />
  82. </mvc:interceptors>
  83. <!--
  84. <bean id="remeberMeService" class="org.maxkey.authn.support.rememberme.JdbcRemeberMeService">
  85. <constructor-arg ref="jdbcTemplate"/>
  86. <property name="validity" value="${config.login.remeberme.validity}"/>
  87. </bean>
  88. -->
  89. <bean id="remeberMeService" class="org.maxkey.authn.support.rememberme.InMemoryRemeberMeService">
  90. </bean>
  91. <bean id="timeBasedKeyUriFormat" class="org.maxkey.crypto.password.opt.algorithm.KeyUriFormat">
  92. <property name="type" value="totp" />
  93. <property name="digits" value="6" />
  94. <property name="issuer" value="maxkey" />
  95. <property name="domain" value="maxkey.org" />
  96. <property name="period" value="30" />
  97. </bean>
  98. <bean id="tfaOptAuthn" class="org.maxkey.crypto.password.opt.impl.TimeBasedOtpAuthn">
  99. <constructor-arg ref="jdbcTemplate" />
  100. </bean>
  101. <!-- Authentication Password Encoder Config -->
  102. <bean id="passwordEncoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"></bean>
  103. <bean id="passwordReciprocal" class="org.maxkey.crypto.password.PasswordReciprocal"></bean>
  104. <!-- Captcha Producer Config -->
  105. <bean id="captchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha">
  106. <property name="config">
  107. <bean class="com.google.code.kaptcha.util.Config">
  108. <constructor-arg type="java.util.Properties">
  109. <props>
  110. <prop key="kaptcha.image.width">70</prop>
  111. <prop key="kaptcha.image.height">25</prop>
  112. <prop key="kaptcha.border">no</prop>
  113. <prop key="kaptcha.obscurificator.impl">com.google.code.kaptcha.impl.ShadowGimpy</prop>
  114. <prop key="kaptcha.textproducer.font.size">23</prop>
  115. <prop key="kaptcha.textproducer.char.string">0123456789</prop>
  116. <prop key="kaptcha.textproducer.char.length">4</prop>
  117. <prop key="kaptcha.noise.impl">com.google.code.kaptcha.impl.NoNoise</prop>
  118. <!-- <prop key="kaptcha.noise.color">white</prop>
  119. -->
  120. </props>
  121. </constructor-arg>
  122. </bean>
  123. </property>
  124. </bean>
  125. <bean id="savedRequestSuccessHandler" class="org.maxkey.authn.SavedRequestAwareAuthenticationSuccessHandler"> </bean>
  126. <!-- LDAP Realm
  127. <bean id="authenticationRealm" class="org.maxkey.web.authentication.realm.ldap.LdapAuthenticationRealm">
  128. <constructor-arg ref="jdbcTemplate"/>
  129. <property name="ldapServers">
  130. <list>
  131. <bean id="ldapServer1" class="org.maxkey.web.authentication.realm.ldap.LdapServer">
  132. <property name="ldapUtils">
  133. <bean id="ldapUtils" class="org.maxkey.ldap.LdapUtils">
  134. <property name="providerUrl" value="ldap://localhost:389"></property>
  135. <property name="principal" value="cn=root"></property>
  136. <property name="credentials" value="rootroot"></property>
  137. <property name="baseDN" value="dc=connsec,dc=com"></property>
  138. </bean>
  139. </property>
  140. <property name="filterAttribute" value="uid"></property>
  141. </bean>
  142. </list>
  143. </property>
  144. </bean> -->
  145. <!-- Active Directory Realm
  146. <bean id="authenticationRealm" class="org.maxkey.web.authentication.realm.activedirectory.ActiveDirectoryAuthenticationRealm">
  147. <constructor-arg ref="jdbcTemplate"/>
  148. <property name="activeDirectoryServers">
  149. <list>
  150. <bean id="activeDirectory1" class="org.maxkey.web.authentication.realm.activedirectory.ActiveDirectoryServer">
  151. <property name="activeDirectoryUtils">
  152. <bean id="ldapUtils" class="org.maxkey.ldap.ActiveDirectoryUtils">
  153. <property name="providerUrl" value="ldap://localhost:389"></property>
  154. <property name="principal" value="cn=root"></property>
  155. <property name="credentials" value="rootroot"></property>
  156. <property name="domain" value="connsec"></property>
  157. </bean>
  158. </property>
  159. </bean>
  160. </list>
  161. </property>
  162. </bean> -->
  163. <!-- Default Realm-->
  164. <!-- realm use jdbc -->
  165. <bean id="authenticationRealm" class="org.maxkey.authn.realm.jdbc.JdbcAuthenticationRealm">
  166. <constructor-arg ref="jdbcTemplate"/>
  167. </bean>
  168. <!-- Authentication providers -->
  169. <bean id="authenticationProvider" class="org.maxkey.authn.RealmAuthenticationProvider" >
  170. </bean>
  171. <mvc:annotation-driven />
  172. <mvc:default-servlet-handler />
  173. </beans>