Monday, August 15, 2016

Create & Processing JWT in JAVA

I am using JJWT library to process the JWT 


 package org.wso2.is.jwt.inbound.authaticator;  
 import io.jsonwebtoken.Claims;  
 import io.jsonwebtoken.JwtBuilder;  
 import io.jsonwebtoken.Jwts;  
 import io.jsonwebtoken.SignatureAlgorithm;  
 import org.wso2.is.jwt.inbound.authenticator.util.Constants;  
 import javax.crypto.spec.SecretKeySpec;  
 import javax.servlet.http.HttpSession;  
 import javax.xml.bind.DatatypeConverter;  
 import java.security.Key;  
 import java.util.Date;  
 import java.util.HashMap;  
 import java.util.Map;  
 public class JWTRespondMessagTest {  
   public static void main(String[] args) {  
     try {  
       JWTRespondMessagTest messagTest = new JWTRespondMessagTest();  
       Map<String, Object> results = new HashMap<String, Object>();  
       results.put("org.wso2.is/mobile", "0711368118");  
       String jwtString = messagTest.createJWT("id","idp","jasinth@wso2",results,1000*60*5);  
       messagTest.readJWT(jwtString);  
     }catch (Exception e){  
     }  
   }  
   private String createJWT(String id, String issuer, String subject,Map<String,Object> claims,int ttlMillis) {  
     SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;  
     long nowMillis = System.currentTimeMillis();  
     Date now = new Date(nowMillis);  
     byte[] apiKeySecretBytes = DatatypeConverter.parseBase64Binary("wso2carbon");  
     Key signingKey = new SecretKeySpec(apiKeySecretBytes, signatureAlgorithm.getJcaName());  
     //Let's set the JWT Claims  
     JwtBuilder builder = Jwts.builder().setId(id)  
         .setIssuedAt(now)  
         .setSubject(subject)  
         .setIssuer(issuer)  
         .signWith(signatureAlgorithm, signingKey);  
     builder.setClaims(claims);  
     if (ttlMillis >= 0) {  
       long expMillis = nowMillis + ttlMillis;  
       Date exp = new Date(expMillis);  
       builder.setExpiration(exp);  
     }  
     return builder.compact();  
   }  
   public void readJWT(String jwt){  
     String claimedId = "Annonimus";  
     String subjectId = "Annonimus";  
     if (jwt == null) {  
     } else {  
       try{  
       Claims claims = Jwts.parser().setSigningKey(DatatypeConverter.parseBase64Binary("wso2carbon")).parseClaimsJws(jwt).getBody();  
       if(claims!=null){  
         subjectId = claims.getSubject();  
         String val =(String) claims.get("org.wso2.is/mobile");  
         System.out.println(val);  
         System.out.println(subjectId);  
       }  
     }catch (Exception e){  
        e.printStackTrace();  
       }  
     }  
   }  
 }  

No comments:

Post a Comment