/*
* Licensed to Apereo under one or more contributor license
* agreements. See the NOTICE file distributed with this work
* for additional information regarding copyright ownership.
* Apereo 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 the following location:
*
* 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.jasig.cas;
import com.codahale.metrics.annotation.Counted;
import com.codahale.metrics.annotation.Metered;
import com.codahale.metrics.annotation.Timed;
import org.jasig.cas.authentication.AuthenticationBuilder;
import org.jasig.cas.logout.LogoutRequest;
import org.jasig.inspektr.audit.annotation.Audit;
import org.apache.commons.collections4.Predicate;
import org.jasig.cas.authentication.AcceptAnyAuthenticationPolicyFactory;
import org.jasig.cas.authentication.Authentication;
import org.jasig.cas.authentication.DefaultAuthenticationBuilder;
import org.jasig.cas.authentication.AuthenticationException;
import org.jasig.cas.authentication.AuthenticationManager;
import org.jasig.cas.authentication.ContextualAuthenticationPolicy;
import org.jasig.cas.authentication.ContextualAuthenticationPolicyFactory;
import org.jasig.cas.authentication.Credential;
import org.jasig.cas.authentication.MixedPrincipalException;
import org.jasig.cas.authentication.principal.DefaultPrincipalFactory;
import org.jasig.cas.authentication.principal.PersistentIdGenerator;
import org.jasig.cas.authentication.principal.Principal;
import org.jasig.cas.authentication.principal.PrincipalFactory;
import org.jasig.cas.authentication.principal.Service;
import org.jasig.cas.logout.LogoutManager;
import org.jasig.cas.services.AttributeReleasePolicy;
import org.jasig.cas.services.RegisteredService;
import org.jasig.cas.services.ServiceContext;
import org.jasig.cas.services.ServicesManager;
import org.jasig.cas.services.UnauthorizedProxyingException;
import org.jasig.cas.services.UnauthorizedServiceException;
import org.jasig.cas.services.UnauthorizedServiceForPrincipalException;
import org.jasig.cas.services.UnauthorizedSsoServiceException;
import org.jasig.cas.ticket.ExpirationPolicy;
import org.jasig.cas.ticket.InvalidTicketException;
import org.jasig.cas.ticket.ServiceTicket;
import org.jasig.cas.ticket.Ticket;
import org.jasig.cas.ticket.TicketCreationException;
import org.jasig.cas.ticket.TicketException;
import org.jasig.cas.ticket.TicketGrantingTicket;
import org.jasig.cas.ticket.TicketGrantingTicketImpl;
import org.jasig.cas.ticket.UnrecognizableServiceForServiceTicketValidationException;
import org.jasig.cas.ticket.UnsatisfiedAuthenticationPolicyException;
import org.jasig.cas.ticket.registry.TicketRegistry;
import org.jasig.cas.util.DefaultUniqueTicketIdGenerator;
import org.jasig.cas.util.UniqueTicketIdGenerator;
import org.jasig.cas.validation.Assertion;
import org.jasig.cas.validation.ImmutableAssertion;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.Assert;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* Concrete implementation of a CentralAuthenticationService, and also the
* central, organizing component of CAS's internal implementation.
* <p>
* This class is threadsafe.
* </p>
* This class has the following properties that must be set:
* <ul>
* <li> <code>ticketRegistry</code> - The Ticket Registry to maintain the list
* of available tickets.</li>
* <li> <code>authenticationManager</code> - The service that will handle
* authentication.</li>
* <li> <code>ticketGrantingTicketUniqueTicketIdGenerator</code> - Plug in to
* generate unique secure ids for TicketGrantingTickets.</li>
* <li> <code>serviceTicketUniqueTicketIdGenerator</code> - Plug in to
* generate unique secure ids for ServiceTickets.</li>
* <li> <code>ticketGrantingTicketExpirationPolicy</code> - The expiration
* policy for TicketGrantingTickets.</li>
* <li> <code>serviceTicketExpirationPolicy</code> - The expiration policy for
* ServiceTickets.</li>
* </ul>
*
* @author William G. Thompson, Jr.
* @author Scott Battaglia
* @author Dmitry Kopylenko
* @since 3.0.0
*/
public final class CentralAuthenticationServiceImpl implements CentralAuthenticationService {
/** Log instance for logging events, info, warnings, errors, etc. */
private final Logger logger = LoggerFactory.getLogger(this.getClass());
/** TicketRegistry for storing and retrieving tickets as needed. */
@NotNull
private final TicketRegistry ticketRegistry;
/**
* AuthenticationManager for authenticating credentials for purposes of
* obtaining tickets.
*/
@NotNull
private final AuthenticationManager authenticationManager;
/**
* UniqueTicketIdGenerator to generate ids for TicketGrantingTickets
* created.
*/
@NotNull
private final UniqueTicketIdGenerator ticketGrantingTicketUniqueTicketIdGenerator;
/** Map to contain the mappings of service->UniqueTicketIdGenerators. */
@NotNull
private final Map<String, UniqueTicketIdGenerator> uniqueTicketIdGeneratorsForService;
/** Implementation of Service Manager. */
@NotNull
private final ServicesManager servicesManager;
/** The logout manager. **/
@NotNull
private final LogoutManager logoutManager;
/** Expiration policy for ticket granting tickets. */
@NotNull
private ExpirationPolicy ticketGrantingTicketExpirationPolicy;
/** ExpirationPolicy for Service Tickets. */
@NotNull
private ExpirationPolicy serviceTicketExpirationPolicy;
/**
* Authentication policy that uses a service context to produce stateful security policies to apply when
* authenticating credentials.
*/
@NotNull
private ContextualAuthenticationPolicyFactory<ServiceContext> serviceContextAuthenticationPolicyFactory =
new AcceptAnyAuthenticationPolicyFactory();
/** Factory to create the principal type. **/
@NotNull
private PrincipalFactory principalFactory = new DefaultPrincipalFactory();
/** Default instance for the ticket id generator. */
@NotNull
private final UniqueTicketIdGenerator defaultServiceTicketIdGenerator
= new DefaultUniqueTicketIdGenerator();
/**
* Build the central authentication service implementation.
*
* @param ticketRegistry the tickets registry.
* @param authenticationManager the authentication manager.
* @param ticketGrantingTicketUniqueTicketIdGenerator the TGT id generator.
* @param uniqueTicketIdGeneratorsForService the map with service and ticket id generators.
* @param ticketGrantingTicketExpirationPolicy the TGT expiration policy.
* @param serviceTicketExpirationPolicy the service ticket expiration policy.
* @param servicesManager the services manager.
* @param logoutManager the logout manager.
*/
public CentralAuthenticationServiceImpl(final TicketRegistry ticketRegistry,
final AuthenticationManager authenticationManager,
final UniqueTicketIdGenerator ticketGrantingTicketUniqueTicketIdGenerator,
final Map<String, UniqueTicketIdGenerator> uniqueTicketIdGeneratorsForService,
final ExpirationPolicy ticketGrantin
没有合适的资源?快使用搜索试试~ 我知道了~
CAS-SSO 整合 记住密码、验证码 、qq、微博等第三方登录
共1082个文件
class:349个
java:315个
jar:121个
3星 · 超过75%的资源 需积分: 50 24 下载量 19 浏览量
2018-03-28
15:43:08
上传
评论
收藏 70.84MB RAR 举报
温馨提示
本资源基于CAS v4版本自定义扩展了 记住密码、验证码、qq、微博等第三方登录功能
资源推荐
资源详情
资源评论
收起资源包目录
CAS-SSO 整合 记住密码、验证码 、qq、微博等第三方登录 (1082个子文件)
gradlew.bat 2KB
fileSnapshots.bin 779KB
fileSnapshots.bin 295KB
fileHashes.bin 110KB
fileHashes.bin 96KB
taskArtifacts.bin 42KB
taskArtifacts.bin 29KB
fileSnapshotsToTreeSnapshotsIndex.bin 22KB
fileSnapshotsToTreeSnapshotsIndex.bin 19KB
CentralAuthenticationServiceImpl.class 24KB
SimpleHttpClientFactoryBean.class 15KB
CachingPrincipalAttributesRepository.class 14KB
ServiceValidateController.class 12KB
AuthenticationViaFormAction.class 12KB
AbstractRegisteredService.class 12KB
PolicyBasedAuthenticationManager.class 11KB
RequestParameterPolicyEnforcementFilter.class 11KB
StringUtils.class 10KB
JsonServiceRegistryDao.class 10KB
CasDelegatingLogger.class 10KB
SimpleHttpClient.class 9KB
WebUtils.class 9KB
LogoutManagerImpl.class 9KB
AcceptJdbcUsersAuthenticationHandler.class 8KB
DefaultAuthenticationBuilder.class 7KB
AbstractCasView.class 7KB
ResponseHeadersEnforcementFilter.class 7KB
StatisticsController.class 7KB
AbstractSocialSignOnEndpoint.class 7KB
TicketGrantingTicketImpl.class 7KB
DefaultRegisteredServiceAccessStrategy.class 7KB
JsonServiceRegistryConfigWatcher.class 7KB
InitialFlowSetupAction.class 7KB
SendTicketGrantingTicketAction.class 6KB
InternalConfigStateController.class 6KB
RegisteredServiceRegexAttributeFilter.class 6KB
ReciprocalUtils.class 6KB
AbstractJacksonBackedJsonSerializer.class 6KB
SocialSignOnEndpoint.class 6KB
Cas30ResponseView.class 6KB
ServiceThemeResolver.class 6KB
SingleSignOnSessionsReportController.class 5KB
ImmutableAuthentication.class 5KB
DefaultServicesManagerImpl.class 5KB
AbstractThrottledSubmissionHandlerInterceptorAdapter.class 5KB
WebContext.class 5KB
PersonDirectoryPrincipalResolver.class 5KB
InspektrThrottledSubmissionByIpAddressAndUsernameHandlerInterceptorAdapter.class 5KB
FileTrustStoreSslSocketFactory.class 5KB
TicketOrCredentialPrincipalResolver.class 5KB
AbstractNonInteractiveCredentialsAction.class 5KB
DefaultTicketRegistryCleaner.class 5KB
ClientOAuthAction.class 5KB
DefaultResponse.class 5KB
RemoteCentralAuthenticationService.class 5KB
DefaultHandlerResult.class 5KB
DefaultCipherExecutor.class 5KB
CasLoggerContextInitializer.class 5KB
JdbcSocialSignOnUserTokenService.class 5KB
RemeberMeLoginAction.class 5KB
AuthenticationExceptionHandler.class 5KB
AbstractCasAttributeEncoder.class 5KB
AbstractAttributeReleasePolicy.class 5KB
JaasAuthenticationHandler.class 5KB
FrontChannelLogoutAction.class 4KB
RegisteredServiceThemeBasedViewResolver.class 4KB
OAuthServiceBuilder.class 4KB
AbstractWebApplicationService.class 4KB
CasLoggerFactory.class 4KB
UserInfo.class 4KB
CompressionUtils.class 4KB
SocialSignOnProvider.class 4KB
ShibbolethCompatiblePersistentIdGenerator.class 4KB
DefaultTicketRegistry.class 4KB
ReturnMappedAttributeReleasePolicy.class 4KB
StringGenerator.class 4KB
ServiceTicketImpl.class 4KB
RemeberMeService.class 4KB
RegisteredServicePublicKeyImpl.class 4KB
AbstractServicesManagerMBean.class 4KB
ProxyController.class 4KB
HttpBasedServiceCredentialsAuthenticationHandler.class 4KB
GenerateServiceTicketAction.class 4KB
ReturnAllowedAttributeReleasePolicy.class 4KB
LogoutAction.class 4KB
DefaultCasAttributeEncoder.class 4KB
DefaultCasCookieValueManager.class 4KB
FilterUtils.class 4KB
PrincipalAttributeRegisteredServiceUsernameProvider.class 4KB
CookieRetrievingCookieGenerator.class 4KB
InternalConfigStateController$BeanObjectJsonSerializer.class 4KB
HealthCheckController.class 4KB
DefaultRegisteredServiceCipherExecutor.class 4KB
Cas20ProxyHandler.class 3KB
ImmutableAssertion.class 3KB
FileTrustStoreSslSocketFactory$CompositeX509KeyManager.class 3KB
AbstractUsernamePasswordAuthenticationHandler.class 3KB
InternalConfigStateController$BeanObjectJsonSerializer$CasSimpleBeanObjectFilter.class 3KB
PublicKeyFactoryBean.class 3KB
AbstractDistributedTicketRegistry$TicketGrantingTicketDelegator.class 3KB
共 1082 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11
资源评论
- SwordRays2018-12-12大致看了一下,功能基本有,但是并不是很好的实现,跟原始代码耦合度比较高。不是最合适的CAS改造方案。建议使用overlay方案
罒RickyZhang丶码农
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功