Ich weiß, dass das Sichern der REST-API ein weithin kommentiertes Thema ist, aber ich kann keinen kleinen Prototyp erstellen, der meine Kriterien erfüllt (und ich muss bestätigen, dass diese Kriterien realistisch sind). Es gibt so viele Möglichkeiten, Ressourcen zu sichern und wie man mit Spring-Sicherheit arbeitet. Ich muss klären, ob meine Bedürfnisse realistisch sind.Wie sichere REST API mit Spring Boot und Spring Security?
Meine Anforderungen
- Token basiert Authenticator - Benutzer seine Anmeldeinformationen liefern und einzigartige und zeitlich begrenzte Zugriffstoken erhalten. Ich möchte Token-Erstellung, Gültigkeitsprüfung, Ablauf in meiner eigenen Implementierung verwalten.
- Einige Ressourcen REST sind öffentlich - keine Notwendigkeit, überhaupt zu authentifizieren,
- Einige Ressourcen für Benutzer mit Administratorrechten nur zugänglich sein wird,
- Andere Ressource wird nach Erteilung der Genehmigung für alle Benutzer zugänglich sein.
- Ich will nicht die Standardauthentifizierung verwenden
- Java-Code-Konfiguration (nicht XML)
Aktuelle Status
Mein REST API funktioniert sehr gut, aber jetzt brauche ich es zu sichern . Als ich nach einer Lösung gesucht habe ich ein javax.servlet.Filter
Filter:
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
String accessToken = request.getHeader(AUTHORIZATION_TOKEN);
Account account = accountDao.find(accessToken);
if (account == null) {
throw new UnauthorizedException();
}
chain.doFilter(req, res);
}
Aber diese Lösung mit javax.servlet.filters
nicht funktioniert, wie ich brauche, weil es ein Problem mit ist die Ausnahmebehandlung über @ControllerAdvice
mit Feder servlet dispatcher
.
Was ich
brauchen würde ich gerne wissen, ob diese Kriterien realistisch sind und keine Hilfe bekommen, wie mit Spring Security Sicherung REST API zu starten. Ich lese viele Tutorials (z. B. Spring Data REST + Spring Security), aber alle arbeiten in sehr einfacher Konfiguration - Benutzer mit ihre Anmeldeinformationen sind im Speicher in der Konfiguration gespeichert und ich muss mit DBMS arbeiten und eigene authenticator erstellen.
Bitte geben Sie mir einige Ideen, wie ich anfangen soll.
können Sie mir in meiner Frage bitte helfen? https://stackoverflow.com/questions/46065063/spring-boot-basic-authentication –
Jedes Beispielprojekt, das alle Anforderungen enthält? –