src/de/uhilger/httpserver/auth/TokenAuthenticator.java | ●●●●● patch | view | raw | blame | history | |
src/de/uhilger/httpserver/auth/realm/Encoder.java | ●●●●● patch | view | raw | blame | history | |
src/de/uhilger/httpserver/auth/realm/SimpleRealm.java | ●●●●● patch | view | raw | blame | history |
src/de/uhilger/httpserver/auth/TokenAuthenticator.java
@@ -38,7 +38,6 @@ import java.util.logging.Level; import java.util.logging.Logger; import de.uhilger.httpserver.auth.realm.Realm; import de.uhilger.httpserver.auth.realm.User; import de.uhilger.httpserver.auth.session.SweepThread; import io.jsonwebtoken.JwtException; src/de/uhilger/httpserver/auth/realm/Encoder.java
New file @@ -0,0 +1,34 @@ /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package de.uhilger.httpserver.auth.realm; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * * @author ulrich */ public class Encoder { private static final byte[] HEX_ARRAY = "0123456789ABCDEF".getBytes(StandardCharsets.US_ASCII); public byte[] encode(String password) throws NoSuchAlgorithmException { MessageDigest md = MessageDigest.getInstance("SHA-256"); return md.digest(password.getBytes()); } public String bytesToHex(byte[] bytes) { byte[] hexChars = new byte[bytes.length * 2]; for (int j = 0; j < bytes.length; j++) { int v = bytes[j] & 0xFF; hexChars[j * 2] = HEX_ARRAY[v >>> 4]; hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F]; } return new String(hexChars, StandardCharsets.UTF_8); } } src/de/uhilger/httpserver/auth/realm/SimpleRealm.java
@@ -9,22 +9,31 @@ import java.io.File; import java.io.FileReader; import java.io.IOException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.spec.InvalidKeySpecException; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; import javax.crypto.BadPaddingException; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; /** * * test=testRolle * ulrich=testRolle,andereRolle * test=test,testRolle * ulrich=ulrich,testRolle,andereRolle * * @author Ulrich Hilger * @version 1, 03.06.2021 */ public class SimpleRealm implements Realm { private static final Logger logger = Logger.getLogger(SimpleRealm.class.getName()); public static final String LIST_INDICATOR = "="; public static final String ROLE_SEPARATOR = ","; @@ -61,6 +70,13 @@ User user = new User(); user.setName(userId); user.setPassword(rollen[0]); try { Encoder encoder = new Encoder(); String hex = encoder.bytesToHex(encoder.encode(rollen[0])); logger.fine(hex); } catch (NoSuchAlgorithmException ex) { logger.log(Level.SEVERE, null, ex); } ArrayList rollenListe = new ArrayList(); for(int i = 1; i < rollen.length; i++) { rollenListe.add(rollen[i]);