⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 registerstatus.java

📁 这是java实现的客户登陆电话系统的注册码部分
💻 JAVA
字号:
/* * RegisterStatus.java * * Created on November 25, 2003, 4:03 PM */package gov.nist.applet.phone.ua;import javax.sip.ClientTransaction;import javax.sip.message.Response;import javax.sip.header.Header;import javax.sip.header.ProxyAuthenticateHeader;import javax.sip.header.WWWAuthenticateHeader ;import javax.sip.header.CSeqHeader;import javax.sip.header.HeaderFactory;import javax.sip.header.ProxyAuthorizationHeader;import javax.sip.header.AuthorizationHeader;import gov.nist.applet.phone.ua.authentication.DigestClientAuthenticationMethod; /** *	Represents the registration status of the application * @author  DERUELLE Jean */public class RegisterStatus {    public static String NOT_REGISTERED="Not Registered";    public static String REGISTRATION_IN_PROGRESS="Registration in progress...";	public static String PROXY_AUTHENTICATION_REQUIRED="Proxy Authentication required";    public static String REGISTERED="Registered";            /**     * Register Status of the user     */    private String registerStatus=null;    	/**	 * Keep a trace of the register Transaction	 */ 	private ClientTransaction registerTransaction;		/**	 * Keep a trace of the register's response	 */ 	public Response registerResponse;        /** Creates a new instance of RegisterStatus */    public RegisterStatus() {        registerStatus=NOT_REGISTERED;    }        /**     * Retrieve the current status of the registration     * @return the current status of the registration     */    public String getStatus(){        return this.registerStatus;    }        /**     * Set the current status of the registration     * @param registerStatus - the current status of the registration     */    public void setStatus(String registerStatus){        this.registerStatus=registerStatus;    }    	/**	 * Retrieve the current client transaction of the registration	 * @return the current client transaction of the registration	 */	public ClientTransaction getRegisterTransaction(){		return this.registerTransaction;	}	/**	 * Set the current client transaction of the registration	 * @param registerTransaction - the current client transaction of the registration	 */	public void setRegisterTransaction(ClientTransaction registerTransaction){		this.registerTransaction=registerTransaction;	}		/**	 * Retrieve the current response of the registration	 * @return the current response of the registration	 */	public Response getRegisterResponse(){		return this.registerResponse;	}	/**	 * Set the current response of the registration	 * @param registerStatus - the current response of the registration	 */	public void setRegisterResponse(Response registerResponse){		this.registerResponse=registerResponse;	}		public Header getHeader(Response response, 							String userName, 							String password,							String outBoundProxy,							int proxyPort) {		try {        			// Proxy-Authorization header:			ProxyAuthenticateHeader authenticateHeader=(ProxyAuthenticateHeader)			response.getHeader(			ProxyAuthenticateHeader.NAME);        			WWWAuthenticateHeader wwwAuthenticateHeader=null;			CSeqHeader cseqHeader=(CSeqHeader)response.getHeader(CSeqHeader.NAME);        			String cnonce=null;			String uri="sip:"+outBoundProxy+":"+proxyPort;			String method=cseqHeader.getMethod();			String nonce=null;			String realm=null;			String qop=null;        			if (authenticateHeader==null) {				wwwAuthenticateHeader=(WWWAuthenticateHeader)				response.getHeader(WWWAuthenticateHeader.NAME);            				nonce=wwwAuthenticateHeader.getNonce();				realm=wwwAuthenticateHeader.getRealm();				if (realm==null) {					System.out.println("AuthenticationProcess, getProxyAuthorizationHeader(),"+					" ERROR: the realm is not part of the 401 response!");					return null;				}				cnonce=wwwAuthenticateHeader.getParameter("cnonce");				qop=wwwAuthenticateHeader.getParameter("qop");			}			else {            				nonce=authenticateHeader.getNonce();				realm=authenticateHeader.getRealm();				if (realm==null) {					System.out.println("AuthenticationProcess, getProxyAuthorizationHeader(),"+					" ERROR: the realm is not part of the 407 response!");					return null;				}				cnonce=authenticateHeader.getParameter("cnonce");				qop=authenticateHeader.getParameter("qop");			}        						HeaderFactory headerFactory=MessageListener.headerFactory;       			DigestClientAuthenticationMethod digest=new DigestClientAuthenticationMethod();			digest.initialize(realm,userName,uri,nonce,password,method,cnonce,"MD5");        			if (authenticateHeader==null) {				AuthorizationHeader header=headerFactory.createAuthorizationHeader("Digest");				header.setParameter("username",userName);				header.setParameter("realm",realm);				header.setParameter("uri",uri);				header.setParameter("algorithm","MD5");				header.setParameter("opaque","");				header.setParameter("nonce",nonce);				header.setParameter("response",digest.generateResponse());				if (qop!=null)					header.setParameter("qop",qop);                        				return header;            			}			else {				ProxyAuthorizationHeader header=headerFactory.createProxyAuthorizationHeader("Digest");				header.setParameter("username",userName);				header.setParameter("realm",realm);				header.setParameter("uri",uri);				header.setParameter("algorithm","MD5");				header.setParameter("opaque","");				header.setParameter("nonce",nonce);				header.setParameter("response",digest.generateResponse());				if (qop!=null)					header.setParameter("qop",qop);                        				return header;            			}        		}		catch (Exception ex) {			ex.printStackTrace();			return null;		}	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -