argos/dmp-backend/src/main/java/eu/eudat/security/validators/TokenValidatorFactoryImpl.java

72 lines
2.5 KiB
Java
Raw Normal View History

2018-01-09 12:31:01 +01:00
package eu.eudat.security.validators;
2018-01-10 17:05:23 +01:00
import eu.eudat.security.validators.facebook.FacebookTokenValidator;
2018-01-09 12:31:01 +01:00
import eu.eudat.security.validators.google.GoogleTokenValidator;
2018-01-10 17:05:23 +01:00
import eu.eudat.security.validators.linkedin.LinkedInTokenValidator;
2018-01-11 12:13:01 +01:00
import eu.eudat.security.validators.twitter.TwitterTokenValidator;
2018-01-09 12:31:01 +01:00
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);
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;
default:
throw new RuntimeException("Unsupported LoginProvider");
}
}
}
private GoogleTokenValidator googleTokenValidator;
private FacebookTokenValidator facebookTokenValidator;
2018-01-10 17:05:23 +01:00
private LinkedInTokenValidator linkedInTokenValidator;
2018-01-11 12:13:01 +01:00
private TwitterTokenValidator twitterTokenValidator;
2018-01-09 12:31:01 +01:00
@Autowired
2018-01-11 12:13:01 +01:00
public TokenValidatorFactoryImpl(GoogleTokenValidator googleTokenValidator, FacebookTokenValidator facebookTokenValidator,LinkedInTokenValidator linkedInTokenValidator,TwitterTokenValidator twitterTokenValidator) {
2018-01-09 12:31:01 +01:00
this.googleTokenValidator = googleTokenValidator;
this.facebookTokenValidator = facebookTokenValidator;
2018-01-10 17:05:23 +01:00
this.linkedInTokenValidator = linkedInTokenValidator;
2018-01-11 12:13:01 +01:00
this.twitterTokenValidator = twitterTokenValidator;
2018-01-09 12:31:01 +01:00
}
public TokenValidator getProvider(LoginProvider provider) {
switch (provider) {
case GOOGLE:
return this.googleTokenValidator;
case FACEBOOK:
return this.facebookTokenValidator;
2018-01-10 17:05:23 +01:00
case LINKEDIN:
return this.linkedInTokenValidator;
2018-01-11 12:13:01 +01:00
case TWITTER:
return this.twitterTokenValidator;
2018-01-09 12:31:01 +01:00
default:
throw new RuntimeException("Login Provider Not Implemented");
}
}
}