示例#1
0
  // ****Utility 메서드 시작
  // Token 값을 비롯한 timestamp 정보를 생성하여 테이블에 추가함.
  private TokenVO createTokenToTable(RequestAuthVO rVO, UserVO uVO, ClientVO cVO)
      throws OAuth2Exception {
    TokenVO tVO;
    try {
      // 5.1 Access Token 랜덤하게 생성하여 TokenVO 생성하고 저장
      // TODO 목요일 : TOKEN 값 설정하고 DB에 저장 (sqlmap, dao, controller)
      tVO = new TokenVO();
      tVO.setClient_id(rVO.getClient_id());

      // 승인한 사용자
      tVO.setUserid(uVO.getUserid());
      tVO.setToken_type(OAuth2Constant.TOKEN_TYPE_BEARER);
      tVO.setScope(rVO.getScope());

      // expires_in과 refresh_token의 사용 여부는 각 조직이 결정한다.
      tVO.setExpires_in(OAuth2Constant.EXPIRES_IN_VALUE);
      tVO.setRefresh_token(OAuth2Util.generateToken());
      tVO.setCode(OAuth2Util.generateToken());
      tVO.setClient_type(cVO.getClient_type());

      tVO.setAccess_token(OAuth2Util.generateToken());
      // 생성 시간을 계산을 용이하게 하기 위해 타임스탬프 형태로 저장
      long currentTimeStamp = OAuth2Util.getCurrentTimeStamp();
      tVO.setCreated_at(currentTimeStamp);
      tVO.setCreated_rt(currentTimeStamp);

      System.out.println(tVO);
      // tbl_Token테이블에 추가
      dao.createToken(tVO);
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      throw new OAuth2Exception(401, OAuth2ErrorConstant.UNAUTHORIZED_CLIENT);
    }
    return tVO;
  }