74 lines
2.6 KiB
Java
74 lines
2.6 KiB
Java
package eu.eudat.security.validators;
|
|
|
|
import eu.eudat.security.validators.facebook.FacebookTokenValidator;
|
|
import eu.eudat.security.validators.google.GoogleTokenValidator;
|
|
import eu.eudat.security.validators.linkedin.LinkedInTokenValidator;
|
|
import eu.eudat.security.validators.twitter.TwitterTokenValidator;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
/**
|
|
* Created by ikalyvas on 1/9/2018.
|
|
*/
|
|
@Service("tokenValidatorFactory")
|
|
public class TokenValidatorFactoryImpl implements TokenValidatorFactory{
|
|
public enum LoginProvider {
|
|
GOOGLE((short) 1), FACEBOOK((short) 2), TWITTER((short) 3), LINKEDIN((short) 4),NATIVELOGIN((short) 5);
|
|
|
|
private short value;
|
|
|
|
private LoginProvider(short value) {
|
|
this.value = value;
|
|
}
|
|
|
|
public short getValue() {
|
|
return value;
|
|
}
|
|
|
|
public static LoginProvider fromInteger(int value) {
|
|
switch (value) {
|
|
case 1:
|
|
return GOOGLE;
|
|
case 2:
|
|
return FACEBOOK;
|
|
case 3:
|
|
return TWITTER;
|
|
case 4:
|
|
return LINKEDIN;
|
|
case 5:
|
|
return NATIVELOGIN;
|
|
default:
|
|
throw new RuntimeException("Unsupported LoginProvider");
|
|
}
|
|
}
|
|
}
|
|
|
|
private GoogleTokenValidator googleTokenValidator;
|
|
private FacebookTokenValidator facebookTokenValidator;
|
|
private LinkedInTokenValidator linkedInTokenValidator;
|
|
private TwitterTokenValidator twitterTokenValidator;
|
|
@Autowired
|
|
public TokenValidatorFactoryImpl(GoogleTokenValidator googleTokenValidator, FacebookTokenValidator facebookTokenValidator,LinkedInTokenValidator linkedInTokenValidator,TwitterTokenValidator twitterTokenValidator) {
|
|
this.googleTokenValidator = googleTokenValidator;
|
|
this.facebookTokenValidator = facebookTokenValidator;
|
|
this.linkedInTokenValidator = linkedInTokenValidator;
|
|
this.twitterTokenValidator = twitterTokenValidator;
|
|
}
|
|
|
|
public TokenValidator getProvider(LoginProvider provider) {
|
|
switch (provider) {
|
|
case GOOGLE:
|
|
return this.googleTokenValidator;
|
|
case FACEBOOK:
|
|
return this.facebookTokenValidator;
|
|
case LINKEDIN:
|
|
return this.linkedInTokenValidator;
|
|
case TWITTER:
|
|
return this.twitterTokenValidator;
|
|
default:
|
|
throw new RuntimeException("Login Provider Not Implemented");
|
|
}
|
|
}
|
|
|
|
}
|