Refractor Authenticator -> was visibly not finished previously
This commit is contained in:
parent
8a6b744519
commit
7e4cc9f425
4 changed files with 29 additions and 18 deletions
|
@ -46,11 +46,8 @@ public class Client<U extends User> extends Thread{
|
|||
}
|
||||
|
||||
private User isLogin(RequestType type, HttpReader reader) throws AuthException{
|
||||
String auth = reader.getHeader("Authorization");
|
||||
if(auth == null) return null;
|
||||
auth = auth.substring(7);
|
||||
try{
|
||||
return this.router.getUser(auth);
|
||||
return this.router.getUser(type, reader);
|
||||
}catch(Exception e){
|
||||
try{
|
||||
writer.response(401, this.router.getDefaultHeaders(type));
|
||||
|
|
|
@ -161,18 +161,18 @@ public class Router<U extends User>{
|
|||
return this;
|
||||
}
|
||||
|
||||
public U getUser(String token) throws Exception{
|
||||
return this.auth != null ? this.auth.getUser(token) : null;
|
||||
public U getUser(RequestType type, HttpReader reader) throws Exception{
|
||||
return this.auth != null ? this.auth.getUser(type, reader) : null;
|
||||
}
|
||||
|
||||
public U getUser(String data) throws Exception{
|
||||
return this.auth != null ? this.auth.getUser(data) : null;
|
||||
}
|
||||
|
||||
public String createAuthUser(U user) throws Exception{
|
||||
return this.auth.createAuthUser(user);
|
||||
}
|
||||
|
||||
public User isLogin(RequestType type, HttpReader reader) throws Exception{
|
||||
return this.auth.isLogin(type, reader);
|
||||
}
|
||||
|
||||
public Locker<Context> getLogger(){
|
||||
return this.logger;
|
||||
}
|
||||
|
|
|
@ -6,10 +6,10 @@ import dev.peerat.framework.User;
|
|||
|
||||
public interface Authenticator<U extends User>{
|
||||
|
||||
U getUser(String token) throws Exception;
|
||||
|
||||
String createAuthUser(U user) throws Exception;
|
||||
|
||||
User isLogin(RequestType type, HttpReader reader) throws Exception;
|
||||
U getUser(RequestType type, HttpReader reader) throws Exception;
|
||||
|
||||
U getUser(String data) throws Exception;
|
||||
|
||||
}
|
||||
|
|
|
@ -15,9 +15,11 @@ import org.jose4j.jwt.JwtClaims;
|
|||
import org.jose4j.jwt.consumer.JwtConsumer;
|
||||
import org.jose4j.jwt.consumer.JwtConsumerBuilder;
|
||||
|
||||
import dev.peerat.framework.HttpReader;
|
||||
import dev.peerat.framework.RequestType;
|
||||
import dev.peerat.framework.User;
|
||||
|
||||
public class JwtAuthenticator<U extends User>{
|
||||
public class JwtAuthenticator<U extends User> implements Authenticator<U>{
|
||||
|
||||
private RsaJsonWebKey rsaJsonWebKey;
|
||||
private JwtConsumer jwtConsumer;
|
||||
|
@ -58,10 +60,7 @@ public class JwtAuthenticator<U extends User>{
|
|||
return this.rsaJsonWebKey.toParams(OutputControlLevel.INCLUDE_PRIVATE);
|
||||
}
|
||||
|
||||
public U getUser(String token) throws Exception{
|
||||
return this.userCreator.apply(this.jwtConsumer.processToClaims(token));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String createAuthUser(U user) throws Exception{
|
||||
JwtClaims claims = new JwtClaims();
|
||||
claims.setGeneratedJwtId(); // a unique identifier for the token
|
||||
|
@ -78,4 +77,19 @@ public class JwtAuthenticator<U extends User>{
|
|||
jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.RSA_USING_SHA256);
|
||||
return jws.getCompactSerialization();
|
||||
}
|
||||
|
||||
@Override
|
||||
public U getUser(RequestType type, HttpReader reader) throws Exception{
|
||||
String auth = reader.getHeader("Authorization");
|
||||
if(auth == null) throw new AuthException("Header 'Authorization' notfound");
|
||||
auth = auth.substring(7);
|
||||
return this.userCreator.apply(this.jwtConsumer.processToClaims(auth));
|
||||
}
|
||||
|
||||
@Override
|
||||
public U getUser(String data) throws Exception {
|
||||
if(data == null) throw new AuthException("Null Token");
|
||||
return this.userCreator.apply(this.jwtConsumer.processToClaims(data));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue