Czy jest możliwe stosowanie wielu metod uwierzytelniania dla serwletu java? Na przykład uwierzytelnianie oparte na formularzach oprócz uwierzytelniania opartego na open id, aby użytkownicy mogli wybrać sposób logowania się.Wiele metod uwierzytelniania serwletów java
Odpowiedz
Tak.
Proponuję jednak, aby zrobić to za pomocą filtrów serwletów, a nie serwletu.
http://brendangraetz.wordpress.com/2010/06/17/use-servlet-filters-for-user-authentication/
Wykonaj kroki opisane w tym poście, i zastąpić metodę isAuth()
taki sposób, że spełnia ona jednak uwierzytelniania w wielu trybach chcesz. W (bardzo szorstki, niesprawdzonych) Kod:
@Override protected boolean isAuth()
{
String authMode = (String)(getSession(true).getAttribute("authMode"));
if (authMode == null) { return false; }
if (authMode.equals("open id") {
//do open id authentication steps here
//return true if authentication passes
}
else if (authMode.equals("some other authentication") {
//do some other authentication steps here
//return true if authentication passes
}
...
return false;
}
jestem zakładając oczywiście, że wiesz już, jak zaimplementować kroki uwierzytelniania w każdym trybie indywidualnym.
"Sztuczka" polega na przechowywaniu wartości w sesji HTTP natychmiast po przeprowadzeniu przez użytkownika uwierzytelniania podczas sesji HTTP. Na podstawie tej wartości filtr będzie wiedział, co powinien sprawdzić lub zapytać o cokolwiek, co określisz przed załadowaniem serwletu.
Tak, jest to możliwe, ale jest nieco trudne do wdrożenia.
Na przykład, gotowe do użycia oprogramowanie SpringSecurity obsługuje lokalne uwierzytelnianie, OpenId, X509 i inne schematy, ale łączenie ich w taki sposób, aby użytkownik miał alternatywne sposoby logowania, wymaga niestandardowych klas i niestandardowego okablowania.
Innym sposobem wykonywania wielu uwierzytelnień jest JAAS, usługa uwierzytelniania i autoryzacji Java. Korzystając z JAAS, możesz zestawiać różne moduły uwierzytelniające jeden na drugim i możesz skonfigurować, który moduł uwierzytelniania ma zostać uruchomiony, a który nie. Nazywa się to PAM (pluggable authentication module). Wyszukaj "J2SE JAAS" w Google lub spójrz na http://server.pramati.com/docstore/1270002/index.htm. Powinny one pomóc Ci zacząć, jeśli zdecydujesz się na tę trasę.
- 1. CXF i wiele odwzorowań serwletów
- 2. określanie metod uwierzytelniania WWW http:
- 3. Wiele opcji uwierzytelniania z Tornadem
- 4. Jedna lub wiele serwletów na aplikację internetową?
- 5. wiele metod na pracownika sidekiq
- 6. Zrozumienie ogólnych metod java
- 7. Opis kontenera serwletów
- 8. kodowanie znaków żądań serwletów
- 9. "Kolejność wykonania filtrów serwletów"
- 10. Filtr serwletów - Nie stosuj filtru do konkretnego.
- 11. Powszechne parametry init w pliku web.xml dla wielu serwletów Java?
- 12. Filtr serwletów do buforowania przeglądarki?
- 13. Rejestrowanie serwletów Tomcat
- 14. C# classes - Dlaczego tak wiele metod statycznych?
- 15. Wiele WHERE z metod rozszerzenie LINQ
- 16. możesz przechowywać wiele metod w jednym selektorze?
- 17. Jakie są alternatywy dla uwierzytelniania Java?
- 18. Wiele klas wyrażeń w jednym pliku Java
- 19. Wiele dziedziczenia w java
- 20. Filtr serwletów dla wszystkich żądań
- 21. Różnica między serwerem WWW a kontenerem serwletów
- 22. Java: Ternary bez powrotu. (Do wywoływania metod)
- 23. Podstawowe reguły dziedziczenia i zastępowania metod Java
- 24. Efektywność Java przenoszenia metod do innej klasy
- 25. Nazewnictwo metod java, które zwracają strumienie
- 26. Java przesłonięcie dwóch interfejsów, zderzenie nazw metod
- 27. Narzędzie Java do testowania prywatnych metod?
- 28. Używanie JRuby do bezpośredniego wywoływania metod Java w języku Java
- 29. podstawowego uwierzytelniania z JAVA do SharePoint 2013 REST API
- 30. WebAppContext przekazuje argument do konstruktora serwletów
Fantastyczny, dokładnie tego szukałem! Chciałbym mieć wystarczająco dużo przedstawiciela, żeby to głosować! – KPthunder
@KPthunder: Bez obaw, cieszę się, że to działa! – bguiz
Nieważne, mam już przedstawiciela! – KPthunder