Class JwtTokenServiceImpl
java.lang.Object
ru.cg.webbpm.modules.security.api.impl.token.JwtTokenServiceImpl
- All Implemented Interfaces:
JwtTokenService
- Author:
- Flyur Karimov
-
Constructor Summary
ConstructorsConstructorDescriptionJwtTokenServiceImpl
(UserAccountRefreshTokenDao userAccountRefreshTokenDao, String secretKey, SimpleCredentialsService simpleCredentialsService, LoginCredentialsService loginCredentialsService) -
Method Summary
Modifier and TypeMethodDescriptionboolean
checkRefreshToken
(Token refreshToken) createAccessToken
(String userAccountId, boolean simpleCredentials) Creates a token with a short duration Needed to requests authorization It must be stored on client sidecreateRefreshToken
(String userAccountId, boolean simpleCredentials) Creates a token with a long duration Needed to refresh access token It must be stored on client and backend sidevoid
deleteRefreshToken
(String accessToken) Delete refresh token from DB after logoutgetCredentials
(boolean isSimpleCredentials, String userAccountId) boolean
boolean
Validates token Check userAccountId existing and token expiration timevoid
saveRefreshToken
(String userAccountId, Token newToken, String accessToken) Save refresh token in storagevoid
updateRefreshToken
(String userAccountId, Token newToken, String oldToken, String accessToken) Update refresh token in storage
-
Constructor Details
-
JwtTokenServiceImpl
@Autowired public JwtTokenServiceImpl(UserAccountRefreshTokenDao userAccountRefreshTokenDao, @Value("${webbpm.security.token.secret.key:ZjE5ZjMxNmYtODViZC00ZTQ5LWIxZmYtOGEzYzE3Yjc1MDVk}") String secretKey, SimpleCredentialsService simpleCredentialsService, LoginCredentialsService loginCredentialsService)
-
-
Method Details
-
createAccessToken
Description copied from interface:JwtTokenService
Creates a token with a short duration Needed to requests authorization It must be stored on client side- Specified by:
createAccessToken
in interfaceJwtTokenService
- Parameters:
userAccountId
- - userAccountIdsimpleCredentials
- - Is the credentials stored in simple_credentials table- Returns:
- access token
-
createRefreshToken
Description copied from interface:JwtTokenService
Creates a token with a long duration Needed to refresh access token It must be stored on client and backend side- Specified by:
createRefreshToken
in interfaceJwtTokenService
- Parameters:
userAccountId
- - userAccountIdsimpleCredentials
- - simpleCredentials- Returns:
- refresh token
-
isValid
Description copied from interface:JwtTokenService
Validates token Check userAccountId existing and token expiration time- Specified by:
isValid
in interfaceJwtTokenService
- Parameters:
token
- token- Returns:
- true for valid token, else false
-
isValid
- Specified by:
isValid
in interfaceJwtTokenService
-
checkRefreshToken
- Specified by:
checkRefreshToken
in interfaceJwtTokenService
-
getCredentials
- Specified by:
getCredentials
in interfaceJwtTokenService
-
saveRefreshToken
Description copied from interface:JwtTokenService
Save refresh token in storage- Specified by:
saveRefreshToken
in interfaceJwtTokenService
- Parameters:
userAccountId
- - user account idnewToken
- new refresh tokenaccessToken
- - access token
-
updateRefreshToken
public void updateRefreshToken(String userAccountId, Token newToken, String oldToken, String accessToken) Description copied from interface:JwtTokenService
Update refresh token in storage- Specified by:
updateRefreshToken
in interfaceJwtTokenService
- Parameters:
userAccountId
- - user account idnewToken
- new refresh tokenoldToken
- old refresh tokenaccessToken
- - access token
-
getToken
- Specified by:
getToken
in interfaceJwtTokenService
-
deleteRefreshToken
Description copied from interface:JwtTokenService
Delete refresh token from DB after logout- Specified by:
deleteRefreshToken
in interfaceJwtTokenService
- Parameters:
accessToken
- - access token
-