mschlegel
Erfahrenes Mitglied
Hi
Ich habe ein Template welches in OpenCMS läuft erstellt. Für meine Benutzer habe ich eine Login-jsp geschrieben in der die Cookies gesetzt und bei einem Logout auch wieder gelöscht werden.
Mein Problem ist jetzt, dass diese Cookies zwar im Browser gesetzt werden aber in dem Moment wo sie gesetzt werden ist die Lebenszeit auch schon wieder verstrichen obwohl ich setMaxAge(60 * 60 * 24 * 365) aufrufe
Ich hab schon einiges versucht, aber ich kriegs einfach nicht hin. Deswegen suche ich jetzt Hilfe bei euch.
Bin mit meinem Latein echt so langsam am Ende
schon mal Danke im voraus.
Ich habe ein Template welches in OpenCMS läuft erstellt. Für meine Benutzer habe ich eine Login-jsp geschrieben in der die Cookies gesetzt und bei einem Logout auch wieder gelöscht werden.
Mein Problem ist jetzt, dass diese Cookies zwar im Browser gesetzt werden aber in dem Moment wo sie gesetzt werden ist die Lebenszeit auch schon wieder verstrichen obwohl ich setMaxAge(60 * 60 * 24 * 365) aufrufe
Ich hab schon einiges versucht, aber ich kriegs einfach nicht hin. Deswegen suche ich jetzt Hilfe bei euch.
Java:
<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %>
<%@page import="org.opencms.jsp.*"%>
<%@page import="org.opencms.file.CmsUser"%>
<%@page import="org.opencms.util.CmsRequestUtil"%>
<%@page import="org.opencms.flex.CmsFlexController" %>
<%@page import="java.lang.String" %>
<%@page import="javax.servlet.http.Cookie"%>
<%@page import="de.fun_alliance.frontend.template.TemplateStylesheet" %>
<%
TemplateStylesheet bean = new TemplateStylesheet(pageContext, request, response);
String uri = bean.link(bean.getRequestContext().getUri());
%>
<%
// Parameter lesen
String username = request.getParameter("username");
String password = request.getParameter("password");
boolean editmode = false;
boolean remember = false;
String url = request.getParameter("url");
String action = request.getParameter("action");
// try to get a boolean
try {
remember = Boolean.parseBoolean( request.getParameter("remember") );
editmode = Boolean.parseBoolean( request.getParameter("edit") );
}catch(Exception e) {}
// String redirect = request.getParameter("requestedResource");
// Variablen
final String userprefix = "/fun-alliance/webusers/";
String message = null;
CmsJspLoginBean cms = new CmsJspLoginBean(pageContext, request, response);
if( action != null && action.equals("logout") ){
cms.logout();
// Remove Cookie
Cookie c_username = new Cookie("fa_username", null);
c_username.setMaxAge(0);
Cookie c_password = new Cookie("fa_password", null);
c_password.setMaxAge(0);
Cookie c_edit= new Cookie("fa_editmode", null);
c_edit.setMaxAge(0);
//response = org.opencms.flex.CmsFlexController.getController(request).getTopResponse();
response.addCookie(c_username);
response.addCookie(c_password);
response.addCookie(c_edit);
//CmsRequestUtil.forwardRequest(cms.link("/"), request, response );
response.sendRedirect(cms.link("/"));
}
else if( action != null && action.equals("login") ){
cms.login(userprefix + username, password);
if(!cms.getUser().isWebuser() && editmode)
cms.login(userprefix + username, password, "Offline");
if(cms.isLoginSuccess()){
// set cookie if wanted
if(remember){
Cookie c_username = new Cookie("fa_username", username);
c_username.setMaxAge(60 * 60 * 24 * 365);
c_username.setPath("/");
Cookie c_password = new Cookie("fa_password", password);
c_password.setMaxAge(60 * 60 * 24 * 365);
c_password.setPath("/");
Cookie c_edit = new Cookie("fa_editmode", Boolean.toString(editmode));
c_edit.setMaxAge(60 * 60 * 24 * 365);
c_edit.setPath("/");
response = org.opencms.flex.CmsFlexController.getController(request).getTopResponse();
response.addCookie(c_username);
response.addCookie(c_password);
response.addCookie(c_edit);
}
response.sendRedirect(url); //login successful - redirect to given URL
//CmsRequestUtil.forwardRequest(url, request, response );
}
}else {
// Try to log in automatically using Cookies
Cookie cookies [] = request.getCookies ();
//Check cookies are available
if (cookies != null){
for(int i=0; i<cookies.length; i++){
if(cookies[i].getMaxAge() > 0){
if(cookies[i].getName().equals("fa_username") )
username = cookies[i].getValue();
else if(cookies[i].getName().equals("fa_password"))
password = cookies[i].getValue();
else if(cookies[i].getName().equals("fa_editmode")){
try{
editmode = Boolean.parseBoolean( cookies[i].getValue() );
}catch(Exception e){}
}
}
}
if(username != null && !username.equals("null"))
cms.login(userprefix + username, password);
if(cms.getUser() != null && cms.getUser().isWebuser() == false && editmode)
cms.login(userprefix + username, password, "Offline");
}
}
if(!cms.isLoggedIn()){ // Benutzer ist nicht angemeldet
%>
<img src="<%= cms.link(bean.getConfigValue("Headerline.Login/Main.Login/Button", "null"))%>" alt="login" onclick="show_hide_Layer('loginbox')"/>
<div class="loginbox" id="loginbox" ; style="display:none;">
<div class="loginbox_head"></div>
<div class="loginbox_main">
<form method="post" action="<%= cms.getFormLink() %>">
<center>
<table style="text-align:left;">
<tr>
<td>Login:</td>
<td colspan="2"><input id="login" class="loginfield" type="text" name="username" onClick="SelectAll('login');"/></td>
<tr/>
<tr>
<td>Passwort:</td>
<td colspan="2"><input id="password" class="loginfield" type="password" name="password" onClick="SelectAll('password');"/></td>
</tr>
<tr>
<td title="Nur für Redakteure" colspan="2">Angemeldet bleiben:</td>
<td style="text-align:right"><input type="checkbox" name="remember" value="true"/></td>
</tr>
<tr>
<td title="Nur für Redakteure" colspan="2">Editiermodus:</td>
<td style="text-align:right"><input type="checkbox" name="edit" value="true"/></td>
</tr>
</table>
</center>
<!-- unsichtbarer Parameter, damit login und logout unterschieden werden können -->
<input type="hidden" name="action" value="login" />
<input type="hidden" name="url" value="<%= cms.link(cms.getRequestContext().getUri())%>" />
<input type="image" src="<%= cms.link(bean.getConfigValue("Headerline.Login/Main.Login/Button", "null"))%>" alt="Login" />
</form>
</div>
<div class="loginbox_foot"></div>
</div>
<%
}
else // Benutzer ist bereits angemeldet
{
%>
<form method="post" action="<%= cms.getFormLink() %>" >
<b>Hallo <%= cms.getUser().getFirstname() %></b>
<!-- unsichtbarer Parameter, damit login und logout unterschieden werden können -->
<input type="hidden" name="action" value="logout" />
<input type="image" src="<%= cms.link(bean.getConfigValue("Headerline.Login/Main.Logout/Button", "null")) %>" alt="Logout" value="Abmelden" />
</form>
<%
}
%>
Bin mit meinem Latein echt so langsam am Ende

schon mal Danke im voraus.