class.jossoagent.php
定义jossoagent,包含大量方法。
getNewInstance 用配置文件josso-cfg.inc里面的信息构造jossoagent.
jossoagent 构造函数。
getUserInSession //Gets the authnenticated jossouser, if any.
isUserInRole($rolename)
findRolesBySSOSessionId($sessionId)
accessSession //Sends a keep-alive notification to the SSO server so that SSO sesison is not lost.
isAutomaticLoginRequired
resolveAuthenticationAssertion
josso.php
分为两部分
1 php逻辑,检查是否是ignored resource, 基于josso-cfg.inc.
如果是josso partner app的话,是否需要自动login.
2 方法的定义
//这一组是用来login,和logout的
jossoRequestLogin() //用$_SERVER['REQUEST_URI']作为currentUrl去做login,Use this function when ever you want to start user authentication.
jossoRequestOptionalLogin()
jossoRequestLoginForUrl($currentUrl, $optional) //为currentUrl做login,完成后会跳到josso-security-check.php
jossoRequestLogout() //Use this function when ever you want to logout the current user.
jossoRequestLogoutForUrl($currentUrl)
//这一组是用来生成各种url的
jossoCreateAuthenticationUrl() //Creates a Authentication Url. 这个源文件里面的注释和变量名起的不好,容易误解。
jossoCreateLoginUrl() //Creates a login url for the current page, use to create links to JOSSO login page(josso-login.php).
jossoCreateLogoutUrl($backToUrl)
jossoSecurityCheckUrl
//辅助的
forceRedirect($url,$die=true)
createBaseUrl
createFrontChannelParams //Add some request parameters like host name
prepareNonCacheResponse
例子流程描述
1 index.php
//通过agent拿到user和sessionId
$user = $josso_agent->getUserInSession();
$sessionId = $josso_agent->getSessionId();
// Check if user is authenticated
if (isset($user)) {
//如果已经通过验证
//可以通过提供的多个方法得到该用户的用户信息,role信息等等.
// logout url.
echo 'Click <a href="'.jossoCreateLogoutUrl(NULL).'">here</a> to logout ...<br>';