2 * //******************************************************************
4 * // Copyright 2016 Samsung Electronics All Rights Reserved.
6 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
8 * // Licensed under the Apache License, Version 2.0 (the "License");
9 * // you may not use this file except in compliance with the License.
10 * // You may obtain a copy of the License at
12 * // http://www.apache.org/licenses/LICENSE-2.0
14 * // Unless required by applicable law or agreed to in writing, software
15 * // distributed under the License is distributed on an "AS IS" BASIS,
16 * // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * // See the License for the specific language governing permissions and
18 * // limitations under the License.
20 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 package org.iotivity.cloud.accountserver.token;
24 import org.iotivity.cloud.accountserver.db.AccountDBManager;
25 import org.iotivity.cloud.util.Logger;
27 public class TokenManager {
29 private TokenGenerator tokenGenerator;
30 private TokenValidator tokenValidator;
32 public TokenManager() {
33 tokenGenerator = new TokenGenerator();
34 tokenValidator = new TokenValidator();
37 public Token generateToken() {
39 String accessToken = tokenGenerator.generateAccessToken();
40 String refreshToken = tokenGenerator.generateRefreshToken();
42 Token token = new Token();
43 token.setToken(accessToken, refreshToken);
48 public Boolean verifyAccessToken(String token) {
50 return tokenValidator.verifyAccessToken(token);
53 public Boolean verifyRefreshToken(String token) {
55 return tokenValidator.verifyRefreshToken(token);
58 public long getRemainExpiredTime(String token) {
60 return tokenValidator.getRemainedSeconds(token);
63 public Token refreshToken(String token) {
67 Token refreshedToken = new Token();
69 Boolean verifyRefreshToken = false;
70 verifyRefreshToken = tokenValidator.verifyRefreshToken(token);
72 if (!verifyRefreshToken) {
73 Logger.w("RefreshToken is not existed!");
77 refreshedToken = generateToken();
79 userId = AccountDBManager.getInstance().getUserIdByRefreshToken(token);
81 AccountDBManager.getInstance().updateUserToken(userId, token,
82 refreshedToken.getAccessToken(),
83 refreshedToken.getRefreshToken());
85 return refreshedToken;