那么authenticationManager.authenticate()这个方法是如何进行认证的,关于认证的配置主要是在deployConfigContext.xml中定义的。
抽象类AbstrctauthenticationManager实现authenticationManager接口中的authenticate()方法,其中最主要的方法是final Pair
这是TGT和ST两种票据之间的关系
最后将产生的TGT放到一个hashmap中,在DefaultTicketRegistry.java类中实现。
authenticationViaFormAction的submit方法返回了success,即生成了TGT。根据webflow.xml:
跳转到id=sendTicketGrantingTicket中:
调用sendTicketGrantingTicketAction方法,它的主要作用是把上步骤产生的TGT放到respose中。应该是用户的浏览器中。返回success()
login-webflow判断是否有service,由于我们第一次输入的是客户端的url,所以携带service,接着产生ST。
对应cas-servlet.xml:
对应GenerateServiceTicketAction.java:
ST也是由核心类centralAuthenticationService.java生成的,注意,这个方法传入的参数含有前面生成的TGT和service。
grantServiceTicket方法的具体实现是位于TicketGrantingTicketImpl.java中。
方法描述:
1:生成SerivceTicketImpl
2:更新属性: