package com.connsec.client; import com.connsec.crypto.Base64Utils; import com.connsec.crypto.ReciprocalUtils; public class WSignToken { String wsign_token; String wsign_signature; String username; String authnAt; private boolean isDecodeToken; public WSignToken(String wsign_token_signature) { String []WSign_Token_Sign=wsign_token_signature.split("\\."); this.wsign_token =WSign_Token_Sign[0]; if(WSign_Token_Sign.length==2){ this.wsign_signature = WSign_Token_Sign[1]; } } public WSignToken(String wsign_token, String wsign_signature) { this.wsign_token = wsign_token; this.wsign_signature = wsign_signature; } public String getWsign_token() { return wsign_token; } public void setWsign_token(String wsign_token) { this.wsign_token = wsign_token; } public String getWsign_signature() { return wsign_signature; } public void setWsign_signature(String wsign_signature) { this.wsign_signature = wsign_signature; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getAuthnAt() { return authnAt; } public void setAuthnAt(String authnAt) { this.authnAt = authnAt; } private void decodeBase64Url(){ if(!isDecodeToken){ wsign_token=new String(Base64Utils.base64UrlDecode( wsign_token)); isDecodeToken=true; } } public String decode(String secretKey,String algorithm){ decodeBase64Url(); wsign_token=ReciprocalUtils.decoderHex(wsign_token, secretKey,algorithm); return wsign_token; } public void parse(){ decodeBase64Url(); String [] splitToken=wsign_token.split("@@"); if(splitToken.length==2){ username=splitToken[0]; authnAt=splitToken[1]; } } @Override public String toString() { return "WSignToken [wsign_token=" + wsign_token + ", wsign_signature=" + wsign_signature + ", username=" + username + ", authnAt=" + authnAt + "]"; } }