package jp.aegif.nemaki.rest; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import org.apache.commons.lang.StringUtils; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import jp.aegif.nemaki.cmis.factory.auth.Token; import jp.aegif.nemaki.cmis.factory.auth.TokenService; @Path("/repo/{repositoryId}/authtoken/") public class AuthTokenResource extends ResourceBase{ private TokenService tokenService; @GET @Path("/{userName}") @Produces(MediaType.APPLICATION_JSON) public String get(@PathParam("repositoryId") String repositoryId, @PathParam("userName") String userName, @QueryParam("app") String app){ boolean status = true; JSONObject result = new JSONObject(); JSONArray errMsg = new JSONArray(); if(StringUtils.isBlank(app)){ app = ""; } Token token = tokenService.getToken(app, repositoryId, userName); if(token == null){ status = false; errMsg = new JSONArray(); //TODO }else{ JSONObject obj = new JSONObject(); obj.put("app", app); obj.put("repositoryId", repositoryId); obj.put("userName", userName); obj.put("token", token.getToken()); obj.put("expiration", token.getExpiration()); result.put("value", obj); } result = makeResult(status, result, errMsg); return result.toString(); } @GET @Path("/{userName}/register") @Produces(MediaType.APPLICATION_JSON) public String register(@PathParam("repositoryId") String repositoryId, @PathParam("userName") String userName, @QueryParam("app") String app){ boolean status = true; JSONObject result = new JSONObject(); JSONArray errMsg = new JSONArray(); //Validation if(StringUtils.isBlank(app)){ app = ""; } if(StringUtils.isBlank(userName)){ addErrMsg(errMsg, "username", "isNull"); return makeResult(status, result, errMsg).toString(); } if(StringUtils.isBlank(repositoryId)){ addErrMsg(errMsg, "repositoryId", "isNull"); return makeResult(status, result, errMsg).toString(); } Token token = tokenService.setToken(app, repositoryId, userName); JSONObject obj = new JSONObject(); obj.put("app", app); obj.put("repositoryId", repositoryId); obj.put("userName", userName); obj.put("token", token.getToken()); obj.put("expiration", token.getExpiration()); result.put("value", obj); result = makeResult(status, result, errMsg); return result.toString(); } public void setTokenService(TokenService tokenService) { this.tokenService = tokenService; } }