В этой статье представлен пример Spring Boot Integrating Client CARS для реализации отдельной проверки входа. Он поделится с вами, а также оставляет записку для себя. Детали следующие:
Single Sign-On (SSO для короткому) является одним из самых популярных решений для интеграции предприятия. SSO позволяет пользователям получить доступ к всем взаимно доверенным системам приложений в нескольких системах приложений только один раз.
CAS Client
Отвечает за обработку запросов доступа к защищенным клиентским ресурсам. Когда необходимо аутентифицировать запрашивающую сторону, она перенаправляет на сервер CAS для аутентификации. (В принципе, клиентские приложения больше не принимают имя пользователя, пароль и т. Д.).
Метод реализации первый: используйте сторонний стартер
1. зависеть от JAR
<Depective> <groupid> net.unicon.cas </GroupId> <artifactid> cas-client-autoconfig-support </artifactid> <sersive> 1.4.0-ga </version> </dependency>
2. Добавить файлы конфигурации
cas.server-url-prefix = http: //127.0.0.1 cas.server-login-url = http: //127.0.0.1/login cas.client-url = http: //192.26.4.28: 8080 cas.validation-typ = cas
3. Включите поддержку клиента CAS
@Springbootapplication @componentscan (basepackages = {"com.chhliu.emailservice"}) @enablecasclient // Включить поддержку CAS поддержки открытого класса приложение SpringbootServletinitialize {public void main (String [] args) {SpringApplication. }}Через приведенные выше 3 шага вы можете завершить аутентификацию клиента CAS!
4. расширить
Тип Cas.validation в настоящее время поддерживает 3 метода: 1. CAS; 2. CAS3; 3. Самл
Другие доступные конфигурации следующие:
cas.authentication-url-patterns cas.validation-url-patterns cas.request-wrapper-url-patterns cas.assertion-thread-local-url-patterns cas.gateway cas.use-session cas.redirect-after-validation cas.allowed-proxy-chains cas.proxy-callback-url cas.proxy-receptor-url cas.accept-any-proxy server.context-parameters.renew
Конкретное значение может быть четко видно из имени.
Метод реализации 2: Ручная конфигурация
Мы использовали клиент CAS и необходимы для настройки следующего в web.xml:
<Filter> <Filter-name> AuthenticationFilter </filter-name> <filter-class> org.jasig.cas.client.authentication.authenticationfilter </filter-class> <init-param> <param-name> acserverloginurl </param-name> <param-value> http://127.0.0.1/login </param-value> </init-param> <init-param> <param-name> servername </param-value> http://192.26.4.28:8080 </param-value> </init-param> </init-param> </init-param> </init-param> </init-param> </init-param> </init-param> </init-param> <Filter-name> AuthenticationFilter </filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-Этот фильтр отвечает за проверку билета, и он должен быть включен-> <Filter> <Filter-name> ValidationFilter </filter-name> <filter-class> org.jasig.cas.client.validation.cas20proxyreceive ticketvalidationfilter </filter-class> <init-param> <param-name> casserverurlprefix </param-name> <param-Value> http://127.0.0.1 </param-value> <init-pram> <param-param> <param-param> <param-param> <param-param> <param-param> <param-val <param-name> servername </param-name> <param-value> http://192.26.4.28:8080 </param-value> </init-param> <!-<init-param> <param-name> redirectaftervalidation </param-name> <param-value> true </param-value> <peat init-param> <peat init-param> <dit in-param> </init-param> </init-param> </init-param> </init-param> </init-param> </init-param> </init-param> </init-param> </init-par <mame-dame> использует </param-name> <param-value> true </param-value> </init-param>-> </filter> <Filter-Mapping> <Filter-name> ValidationFilter </filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <! Позволяет разработчикам получить имя входа в систему пользователя SSO с помощью метода getRemoteUser () httpservlectrequest и необязательной конфигурации. -> <Filter> <Filter-name> httpservletRequestWrapperfilter </filter-name> <filter-class> org.jasig.cas.client.util.httpservletrequestwrapperfilter </filter-class> </filter> <filter-mapping> <pastter-name> httpserveltrewraperfrapperfrapperf <Url-pattern>/*</url-pattern> </filter-mapping>
Поэтому, когда мы настраиваем вручную, нам нужно вручную настроить соответствующий фильтр в вышеуказанном XML, и код выглядит следующим образом:
@Configuration @component public class casconfigure {@bean public filterRegistrationbean AuthenticationFilterRegistrationBean () {FilterRegistrationBean AuthenticationFilter = new FilterRegistrationBean (); AuthenticationFilter.SetFilter (New AuthenticationFilter ()); Map <string, string> initparameters = new HashMap <String, String> (); initparameters.put ("Casserverloginurl", "http://127.0.0.1/login"); initparameters.put ("servername", "http://192.26.4.28:8080"); AuthenticationFilter.setInitParameters (initParameters); AuthenticationFilter.SetOrder (2); List <string> urlpatterns = new ArrayList <string> (); urlpatterns.add ("/*"); // Установить соответствующую URL AuthenticationFilter.setUrlPatterns (urlPatterns); вернуть аутентификациюфильтер; } @Bean Public FilterRegistrationBean ValidationFilterRegistrationBean () {FilterRegistrationBean AuthenticationFilter = new FilterRegistrationBean (); AuthenticationFilter.SetFilter (новый CAS20ProxyReceiveTicketValidationFilter ()); Map <string, string> initparameters = new HashMap <String, String> (); initparameters.put ("casserverurlprefix", "http://127.0.0.1"); initparameters.put ("servername", "http://192.26.4.28:8080"); AuthenticationFilter.setInitParameters (initParameters); AuthenticationFilter.SetOrder (1); List <string> urlpatterns = new ArrayList <string> (); urlpathterns.add ("/*"); // Установить соответствующую URL Authenticationfilter.setUrlPatterns (urlPatterns); вернуть аутентификациюфильтер; } @Bean public filterRegistrationbean basettpservletrequestwrapperfilter () {FilterRegistrationBean AuthenticationFilter = new FilterRegistrationBean (); AuthenticationFilter.setFilter (новый httpservletrequestwrapperfilter ()); AuthenticationFilter.SetOrder (3); List <string> urlpatterns = new ArrayList <string> (); urlpathterns.add ("/*"); // Установить соответствующую URL Authenticationfilter.setUrlPatterns (urlPatterns); вернуть аутентификациюфильтер; } @Bean public filterRegistrationbeanbean casassertionthreadlocalfilter () {FilterRegistrationBean AuthenticationFilter = new FilterRegistrationBean (); AuthenticationFilter.SetFilter (new AssertionThreadLocalFilter ()); AuthenticationFilter.SetOrder (4); List <string> urlpatterns = new ArrayList <string> (); urlpathterns.add ("/*"); // Установить соответствующую URL Authenticationfilter.setUrlPatterns (urlPatterns); вернуть аутентификациюфильтер; }} Через приведенную выше конфигурацию, аутентификация клиента CAS также может быть завершена
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.