Temat: Panel uzytkownika

Witam, mam mega problem ze stworzeniem panelu użytkownika na servletach. Połączenie z baza danych mam, opcje rejestrowania i logowania tez ale problem w tym ze nie wiem jak otworzyć osobny panel administratora oraz użytkownika tak aby każdy miał odpowiednie opcje zgodnie z jego uprawnieniami. Na ten moment istnieje sobie if sprawdzający czy login to admin i hasło jest zgodne i robi przekierowanie do panelu. Problem jest taki ze do tego panelu może mieć dostęp każdy wystarczy znać tylko link do panelu i po sprawie. Pytanie jak temu zapobiec?Ten post został edytowany przez Autora dnia 14.03.16 o godzinie 23:05
Jarema Antosz

Jarema Antosz Java Developer, VSF
Experts GmbH

Temat: Panel uzytkownika

Używasz czystych servletów i JSP?

Temat: Panel uzytkownika

tylko servlety
Jarema Antosz

Jarema Antosz Java Developer, VSF
Experts GmbH

Temat: Panel uzytkownika

Może własny servlet filter i odpowiednie mapowanie w web.xml? Rozumiem, że zaimplementowałaś obsługę sesji HTTP?
Jeśli to jakaś aplikacja pisana w celu nauki, jak już to ogarniesz, to polecam poczytać o frameworku Spring, a szczególnie module spring-security.

Potrzebujesz czegoś w tym stylu:

https://brendangraetz.wordpress.com/2010/06/17/use-serv...Ten post został edytowany przez Autora dnia 15.03.16 o godzinie 16:38

Temat: Panel uzytkownika

a nie powinno się to odbywać za pomocą sesji, mam w bazie stworzona grupę admin i user, każdy z nich będzie miał swoje uprawnienia do zarządzania strona. Na ten moment mam coś takiego:
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
{
try{
res.setContentType("text/html ;charset=UTF-8");
PrintWriter out = res.getWriter();
HttpSession user_session = req.getSession();


if (user_session.getAttribute("grupa").toString() == "admin") {
out.println("Hello World");
}
else
{
out.println("Jesteś nieadminem");
}
}
catch (Exception e)
{
System.out.println("blad"+e);
}

}
Problem tutaj jest takie ze ten if tak jakby nie działał. Jeżeli przed if'em dam: out.println(user_session.getAttribute("grupa"));
pokaże mi na stronie ze jestem w grupie jako admin ale ten if nie działa bo wyświetla mi komunikat ze nie jestem adminem.
Jarema Antosz

Jarema Antosz Java Developer, VSF
Experts GmbH

Temat: Panel uzytkownika

Podłącz się debugiem z Eclipse i sprawdź, co tam naprawdę siedzi. Poleganie na println jest słabe.

Temat: Panel uzytkownika

korzystam z netbeans, im dłużej w tym siedzę tym bardziej nie mogę wybrnąć z tego. Mi sposób idzie w dobra stronę czy to jest bez sensu?
Maciej R.

Maciej R. Senior Java
Developer

Temat: Panel uzytkownika

Angelika T.:
if (user_session.getAttribute("grupa").toString() == "admin") {

Polecam rozpocząć naukę od podstaw Javy i porównywania obiektów. W powyższej linijce powinnaś użyć metody equals. :)

konto usunięte

Temat: Panel uzytkownika

Potrzebujesz debugera zeby stwiedzic, ze stringi sa zle porownywane? Srsly? :P
Jarema A.:
Podłącz się debugiem z Eclipse i sprawdź, co tam naprawdę siedzi. Poleganie na println jest słabe.

konto usunięte

Temat: Panel uzytkownika

To jeszcze dodam: zrob porownywanie odwrotne:

if "admin".equals(user_session.getAttribute("grupa")), od razu odleci sprawdzanie nulli.
Maciej R.:
Angelika T.:
if (user_session.getAttribute("grupa").toString() == "admin") {

Polecam rozpocząć naukę od podstaw Javy i porównywania obiektów. W powyższej linijce powinnaś użyć metody equals. :)

Temat: Panel uzytkownika

hmm udało się z equals rozjaśniło to sprawę, sprawdza mi czy należę do grupy adminów czy też nie i pojawia się odpowiedni komunikat. Tylko to chyba jednak zbyt piękne żeby sie na tym zakończył mój problem. Gdy nawet już sobie to zrobię to co dalej, muszę chyba użyć filtra żeby chronił panel przed nie powołanymi. Jak mam uchronić taki panel? To co do tej pory mam umieszczone jest w doGet ale przecież tam nie stworze odpowiednich funkcji które będą za coś odpowiadać na www. Według mnie to powinno się znajdować w html i powinno być przetwarzane w doPost ale mogę się mylić ze względu na to że dopiero się uczę. Czy do tego należy użyć filtra? Jeżeli tak to bardzo proszę o jakiś przykład. I jeszcze jedno pytanie tak na przyszłość, jeżeli uda mi się zrobić poprawna autoryzacje użytkownika, to jak zrobić coś takiego żeby każdy mógł tworzyć swój własny profil i tylko on mógł mieć do niego dostęp. Na ten moment mam idiotyczny pomysł z baza danych ale to strasznie dużo pracy i bez sensu ponieważ przy dużej liczbie użytkowników to się wysypie natychmiastowo.



Wyślij zaproszenie do