Avatar billede luctatic Nybegynder
20. februar 2003 - 10:22 Der er 1 kommentar og
1 løsning

Login via sessions

Vi har en række sider der skal beskyttes af login, og vi har valgt at gøre det på den måde, at alle på de sider der skal beskyttes undersøger vi i starten om der som en del af requestet kommer et ID med over. Gør der ikke det, smider vi session.getId() op i request og sender dem tilbage på login-skærmen. Her kommer så sådan set to spørgsmål i ét.

1) Når vi gemmer "id" i session.setAttribute("",object);, så behøver man vel sende den med hver gang - den skulle vel være for alle links hele tiden så længe den er klaret første gang. Alle andre gange bliver den vel synlig eftersom den allerede ER lagt der ind.

2) Problemet er bare, at det ikke helt virker. Vi lægger scriptet i en fil, som vi så henter med <jsp:include> på alle siderne. Metode:

String id = (String)request.getAttribute("id");
if(id==null)
{
    session.setAttribute("id", session.getId());
    %>
    <jsp:forward page="Login.jsp"/>
    <%
}
%>


Problemet er bare, at det kommer en fejl ved det.
java.lang.IllegalStateException: Cannot forward after response has been committed


Any ideas?
Avatar billede luctatic Nybegynder
20. februar 2003 - 10:32 #1
Prøvede noget andet, efter lidt granskning:

<%
String id = (String)session.getAttribute("id");
if(id==null)
{
    response.setHeader("Login","Login.jsp");
}%>


Nu kommer der ikke flere fejl, men hvis man prøver at tilgå en underliggende side, sker der bare ingenting. Skulle response.setHeader() ikke sende en videre?
Avatar billede luctatic Nybegynder
20. februar 2003 - 12:41 #2
Jeg fik det fusket ved at benytte det her:

<%
String id = (String)session.getAttribute("id");
if(id==null)
{
%>
<jsp:forward page="Login.jsp"/>
<%
}//end if
%>


Og så sætter jeg session.setAttribute("id", id) på loginformen når brugerens identitet er verificeret. Det virker i hvert fald.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester