/* ==================================================================
* Created [2009-4-27 下午11:32:55] by Jon.King
* ==================================================================
* TSS
* ==================================================================
* mailTo:jinpujun@hotmail.com
* Copyright (c) Jon.King, 2009-2012
* ==================================================================
*/
package com.jinhe.tss.core.sso.appserver;
/**
* <p>
* AppServer.java
* </p>
* <p>
* 应用系统对象,包含应用系统的相关信息
* 类似:
* <server code="TSS" userDepositoryCode="tss" name="TSS" sessionIdName="JSESSIONID" baseURL="http://localhost:8088/tss"/>
* <server code="DEMO" userDepositoryCode="tss" name="Demo" sessionIdName="JSESSIONID" baseURL="http://localhost:8088/demo"/>
<server code="AL" userDepositoryCode="tss" name="通讯录" sessionIdName="JSESSIONID" baseURL="http://localhost:8088/al"/>
<server code="OA" userDepositoryCode="OA" name="DOMINO" sessionIdName="LtpaToken" loginAction="/names.nsf?Login"
onlineAction="/app/testxml.nsf/success.xml" onlineValidationCode="Success" singleCookieHeader="true"
description="DomAuthSessId" baseURL="http://www.gzcz.com:8081"/>
* 就是一个应用完整的配置信息。
* </p>
*
*/
public class AppServer {
/**
* 应用Code:与各应用系统配置文件application.properties中的application.code值对应
*/
private String code;
/**
* 应用系统名称
*/
private String name;
/**
* 应用系统对应的用户库编号:基于平台应用的都为tss用户库,异构类应用(如domino)等另行设置
*/
private String userDepositoryCode;
/**
* 应用系统的访问路径,包括协议类型、域名、端口、上下文路径等信息。
* 如果是同服务器(可简单配置为如: /demo、/al)
*/
private String baseURL;
/**
* 描述信息
*/
private String description;
/**
* 应用系统使用对应的Cookie中保存SessionID的参数名称,如Java系统一般为JSESSIONID
*/
private String sessionIdName;
/**
* 系统登陆Action地址(相对系统基本访问路径)
*/
private String loginAction;
/**
* 系统中判断用户是否登录
*/
private String onlineAction;
/**
* 系统中判断用户登录请求返回验证字符串
*/
private String onlineValidationCode;
/**
* 系统是否要求将所有Cookie放在一个Header中传输
*/
private Boolean singleCookieHeader;
public String getUserDepositoryCode() {
if (userDepositoryCode == null || "".equals(userDepositoryCode)) {
return code;
}
return userDepositoryCode;
}
public void setUserDepositoryCode(String depositoryCode) {
this.userDepositoryCode = depositoryCode;
}
public String getBaseURL() {
return baseURL;
}
public void setBaseURL(String baseURL) {
this.baseURL = baseURL;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSessionIdName() {
return sessionIdName;
}
public void setSessionIdName(String sessionIdName) {
this.sessionIdName = sessionIdName;
}
public String getLoginAction() {
return loginAction;
}
public void setLoginAction(String loginAction) {
this.loginAction = loginAction;
}
public String getOnlineAction() {
return onlineAction;
}
public void setOnlineAction(String dominoOnlineAction) {
this.onlineAction = dominoOnlineAction;
}
public String getOnlineValidationCode() {
return onlineValidationCode;
}
public void setOnlineValidationCode(String dominoOnlineValidationCode) {
this.onlineValidationCode = dominoOnlineValidationCode;
}
public Boolean isSingleCookieHeader() {
return singleCookieHeader;
}
public void setSingleCookieHeader(Boolean singleCookieHeader) {
this.singleCookieHeader = singleCookieHeader;
}
/**
* <p>
* 获取服务器的ContextPath值,baseURL类似:"http://127.0.0.1:8088/tss"
* </p>
* @return tss
*/
public String getPath() {
if (baseURL == null)
return null;
int index = baseURL.lastIndexOf("/");
if (index > 6) {
return baseURL.substring(index);
} else {
return "/";
}
}
/**
* <p>
* 获取服务器的Domain值,baseURL类似:"http://127.0.0.1:8088/tss"
* </p>
* @return 127.0.0.1
*/
public String getDomain() {
if (baseURL == null)
return null;
int index = baseURL.indexOf("/", 7);
int colonIndex = baseURL.indexOf(":", 7);
if (index < 0 && colonIndex < 0) {
return baseURL.substring(7);
}
else if (colonIndex > -1 && (colonIndex < index || index < 0)) {
return baseURL.substring(7, colonIndex);
}
else {
return baseURL.substring(7, index);
}
}
/**
* <p>
* 是否为Domino应用服务
* </p>
* @return
*/
public boolean isForeignServer() {
return loginAction != null && !"".equals(loginAction);
}
public static void main(String[] args){
AppServer s = new AppServer();
s.baseURL = "http://127.0.0.1:8088/tss";
System.out.println(s.getPath());
System.out.println(s.getDomain());
}
}