Three weeks ago I entered a Jira issue (198) for this problem. Did I enter it in the right place?
I'm convinced I'm using the RequestCycle in an ill-prescribed way and it's causing the problem. However, I can't find any postings or other doco that say I should be doing it another way. Suggestions? Johan Compagner wrote: > if not make a jira issue: > > http://issues.apache.org/jira/browse/WICKET > > and point us to the jira number. > > johan > > > On 10/31/06, *kurt heston* <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > > Sure. Didn't know I could attach a web archive (it wouldn't let me > attach a zip). > > > Johan Compagner wrote: > > can't you put in in a quickstart.war so that we can directly run it? > > > > joahn > > > > > > On 10/30/06, *kurt heston* < [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > <mailto:[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>>> wrote: > > > > I've attached a test case I wrote. It works fine until I > upgrade > > the jars. > > > > kurt heston wrote: > > > None of my Forms work after upgrading from 1.2.rc3. Can > anyone give > > > me a clue what's wrong? No error is thrown, it's just > that NONE > > of my > > > form field values are anything other than an empty string. > > > > > > Johan Compagner wrote: > > >> that seems to be the error then. > > >> What is the full stacktrace of that error? > > >> > > >> johan > > >> > > >> > > >> On 10/23/06, *kurt heston* < [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> > > >> <mailto: [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > <mailto:[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>>>> wrote: > > >> > > >> Is this normal behavior or a good place to start chasing > > down my > > >> issue: > > >> > > >> "java.lang.NoSuchFieldException: username" > > >> > > >> kurt heston wrote: > > >> > Something changed about how I'm supposed to override > > >> WebRequestCycle. > > >> > This is where my values are disappearing. Reading > up on > > it now... > > >> > > > >> > Igor Vaynberg wrote: > > >> > > > >> >> yes you are too vague, and another problem is that > this > > list > > >> has been > > >> >> down because of sf.net <http://sf.net> > <http://sf.net> <http://sf.net> > > <http://sf.net > > >> < http://sf.net>> for a while. > > >> >> > > >> >> -Igor > > >> >> > > >> >> > > >> >> On 10/2/06, * kurt heston* < > [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> > > >> <mailto: [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>>> > > >> >> <mailto: [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> > > >> <mailto:[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > <mailto: [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>>>>> wrote: > > >> >> > > >> >> Am I being too vague here to get an answer? Do I > > need to > > >> post my > > >> >> code? > > >> >> > > >> >> kurt heston wrote: > > >> >> > All I did was switch from wicket-1.2-rc3.jar to > > >> wicket-1.2.2.jar > > >> >> and my > > >> >> > SignIn page, adapted from Juergen's code, > stopped > > >> working. The > > >> >> fields > > >> >> > are always an empty string. > > >> >> > > > >> >> > What did I miss in the release notes? > > >> >> > > > >> >> > > > >> >> > > >> > > > ------------------------------------------------------------------------- > > > > > >> > > >> >> > Take Surveys. Earn Cash. Influence the > Future of IT > > >> >> > Join SourceForge.net's Techsay panel and you'll > > get the > > >> chance > > >> >> to share your > > >> >> > opinions on IT & business topics through > brief surveys > > >> -- and > > >> >> earn cash > > >> >> > > > >> >> > > >> > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV>> > > >> > > >> > > >> < > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV>>> > > >> > > >> >> < > > >> > > >> > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV>> > > >> > > >> > > >> > > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV>>>> > > >> > > >> >> > _______________________________________________ > > >> >> > Wicket-user mailing list > > >> >> > Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net> > > <mailto:Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net>> > > >> <mailto: Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net> > > <mailto:Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net>>> > > >> >> <mailto: Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net> > > <mailto:Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net>> > > >> <mailto: Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net> > > <mailto:Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net>>>> > > >> >> > > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > >> >> > > > >> >> > > > >> >> > > >> >> > > >> > > > ------------------------------------------------------------------------- > > > > >> > > >> >> > > >> >> Take Surveys. Earn Cash. Influence the Future > of IT > > >> >> Join SourceForge.net's Techsay panel and > you'll get the > > >> chance to > > >> >> share your > > >> >> opinions on IT & business topics through brief > > surveys -- > > >> and earn > > >> >> cash > > >> >> > > >> > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV>> > > >> > > >> > > >> < > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV>>> > > >> > > >> >> > > >> < > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV>> > > >> > > >> > > >> > > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV>>>> > > >> > > >> >> _______________________________________________ > > >> >> Wicket-user mailing list > > >> >> Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net> > > <mailto:Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net>> > > >> <mailto: Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net> > > <mailto:Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net>>> > > >> >> <mailto: Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net> > > <mailto:Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net>> > > >> <mailto: Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net> > > <mailto:Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net>>>> > > >> >> > https://lists.sourceforge.net/lists/listinfo/wicket-user > > >> > <https://lists.sourceforge.net/lists/listinfo/wicket-user> > > >> >> > > >> >> > > >> >> > > >> > > > >> > > > >> > > >> > > > ------------------------------------------------------------------------- > > > >> > > >> > Using Tomcat but need to do more? Need to support web > > services, > > >> security? > > >> > Get stuff done quickly with pre-integrated > technology to make > > >> your job easier > > >> > Download IBM WebSphere Application Server v.1.0.1 > based on > > >> Apache Geronimo > > >> > > > >> > > >> > > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642> > > > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642>> > > >> > > >> > > > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642> > > > > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642>>> > > >> > > >> > _______________________________________________ > > >> > Wicket-user mailing list > > >> > Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net> > > <mailto:Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net>> > > >> <mailto:Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net> > > <mailto:Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net>>> > > >> > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > <https://lists.sourceforge.net/lists/listinfo/wicket-user> > > >> > > > >> > > > >> > > >> > > >> > > > ------------------------------------------------------------------------- > > >> > > >> Using Tomcat but need to do more? Need to support web > > services, > > >> security? > > >> Get stuff done quickly with pre-integrated technology to > > make your > > >> job easier > > >> Download IBM WebSphere Application Server v.1.0.1 > based on > > Apache > > >> Geronimo > > >> > > >> > > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642> > > > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642>> > > >> > > >> > > > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642> > > > > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642>>> > > >> > > >> _______________________________________________ > > >> Wicket-user mailing list > > >> Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net> > > <mailto:Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net>> > > >> <mailto:Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net> > > <mailto:Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net>>> > > >> > https://lists.sourceforge.net/lists/listinfo/wicket-user > <https://lists.sourceforge.net/lists/listinfo/wicket-user> > > <https://lists.sourceforge.net/lists/listinfo/wicket-user> > > >> > > >> > > >> > > > ------------------------------------------------------------------------ > > > >> > > >> > > > ------------------------------------------------------------------------- > > >> > > >> Using Tomcat but need to do more? Need to support web > services, > > >> security? > > >> Get stuff done quickly with pre-integrated technology to > make your > > >> job easier > > >> Download IBM WebSphere Application Server v.1.0.1 based > on Apache > > >> Geronimo > > >> > > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642> > > > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642>> > > >> > > > ------------------------------------------------------------------------ > > >> > > >> _______________________________________________ > > >> Wicket-user mailing list > > >> Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net> > > <mailto:Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net> > > > >> https://lists.sourceforge.net/lists/listinfo/wicket-user > > >> > > > > > > > > > package test.base ; > > > > import java.awt.Color; > > > > import test.auth.UserSession; > > import wicket.Resource; > > import wicket.markup.html.WebPage; > > import wicket.markup.html.form.ImageButton ; > > import > wicket.markup.html.image.resource.DefaultButtonImageResource ; > > import wicket.markup.html.link.BookmarkablePageLink; > > import wicket.markup.html.link.PopupSettings; > > > > public class BasePage extends WebPage { > > > > public static ImageButton getButton(String buttonName, String > > label) { > > DefaultButtonImageResource r = new > > DefaultButtonImageResource(label); > > Color c = new Color(60, 179, 113); > > r.setColor(c); > > return new ImageButton(buttonName, r); > > } > > > > public static Resource getButton(String label) { > > DefaultButtonImageResource r = new > > DefaultButtonImageResource(label); > > Color c = new Color(60, 179, 113); > > r.setColor(c); > > > > return r; > > } > > > > public UserSession getWebSession() { > > return (UserSession) getSession(); > > } > > > > protected BookmarkablePageLink popInstructions(String string, > > Class class1) { > > PopupSettings popupSettings = new > > PopupSettings().setHeight(500).setWidth( > > 500); > > BookmarkablePageLink pl = new BookmarkablePageLink(string, > > class1); > > pl.setPopupSettings(popupSettings); > > > > return pl; > > } > > > > }package test.data; > > > > import org.hibernate.HibernateException; > > import org.hibernate.Session; > > import org.hibernate.SessionFactory ; > > import org.hibernate.cfg.Configuration; > > > > public class HibernateConnectionMgr { > > > > public static final SessionFactory sessionFactory; > > > > static { > > try { > > // Create the SessionFactory from hibernate.cfg.xml > > sessionFactory = new > > Configuration().configure().buildSessionFactory(); > > } catch (Throwable ex) { > > // Make sure you log the exception, as it might be > swallowed > > System.err.println("Initial SessionFactory creation > failed." > > + ex); > > throw new ExceptionInInitializerError(ex); > > } > > } > > > > public static final ThreadLocal session = new ThreadLocal(); > > > > public static Session currentSession() throws > HibernateException { > > Session s = (Session) session.get(); > > > > // Open a new Session, if this thread has none yet > > if (s == null) { > > s = sessionFactory.openSession(); > > // Store it in the ThreadLocal variable > > session.set(s); > > } > > > > if (!s.isOpen()) { > > s = sessionFactory.openSession(); > > // Store it in the ThreadLocal variable > > session.set(s); > > } > > > > return s; > > } > > > > public static void closeSession() throws HibernateException { > > Session s = (Session) session.get(); > > if (s != null) > > s.close(); > > session.set(null); > > } > > }<html xmlns:wicket="http://wicket.sourceforge.net/ > > <http://wicket.sourceforge.net/ >"> > > <head> > > <title></title> > > </head> > > <body> > > </body> > > </html> > > package test; > > > > import org.apache.log4j.Logger; > > > > import test.auth.UserSession; > > import test.base.BasePage; > > > > > > public class Main extends BasePage { > > > > UserSession ses = getWebSession(); > > > > static Logger logger = Logger.getLogger(Main.class); > > > > public Main() { > > rebuild(); > > } > > > > private void rebuild() { > > } > > > > public UserSession getUserSession() { > > return (UserSession) getSession(); > > > > } > > > > } > > package test.base; > > > > import java.io.Serializable ; > > > > import org.apache.commons.logging.Log; > > import org.apache.commons.logging.LogFactory; > > import org.hibernate.SessionFactory; > > import org.hibernate.cfg.Configuration; > > > > import test.Main; > > import test.auth.SignIn ; > > import test.auth.UserSession; > > import wicket.IRequestCycleFactory; > > import wicket.ISessionFactory; > > import wicket.Request; > > import wicket.RequestCycle; > > import wicket.Response; > > import wicket.Session; > > import > > > wicket.authorization.strategies.page.SimplePageAuthorizationStrategy ; > > import wicket.protocol.http.WebApplication; > > import wicket.protocol.http.WebRequest; > > import wicket.protocol.http.WebSession; > > > > public final class MyApplication extends WebApplication > implements > > ISessionFactory, Serializable { > > > > /** Logger. */ > > private static Log log = > LogFactory.getLog(MyApplication.class); > > > > private final SessionFactory sessionFactory; > > > > public void init() { > > SimplePageAuthorizationStrategy authorizationStrategy = new > > SimplePageAuthorizationStrategy( > > BasePage.class, SignIn.class) { > > protected boolean isAuthorized() { > > return (((UserSession) Session.get ()).isSignedIn()); > > } > > }; > > > > > getSecuritySettings().setAuthorizationStrategy(authorizationStrategy); > > getAjaxSettings().setAjaxDebugModeEnabled(false); > > } > > > > /** > > * custom request cycle factory. > > */ > > private IRequestCycleFactory requestCycleFactory = new > > IRequestCycleFactory() { > > public RequestCycle newRequestCycle(Session session, > Request > > request, > > Response response) { > > return new test.base.RequestCycle((WebSession) session, > > (WebRequest) request, response, sessionFactory); > > } > > }; > > > > /** > > * Constructor > > */ > > public MyApplication() { > > super(); > > try { > > final Configuration configuration = new Configuration(); > > configuration.configure(); > > sessionFactory = configuration.buildSessionFactory(); > > } catch (Exception e) { > > throw new RuntimeException(e); > > } > > > > // setSessionFactory(this); > > } > > > > /** > > * @see wicket.ISessionFactory#newSession() > > */ > > public Session newSession() { > > return new UserSession( MyApplication.this) { > > protected IRequestCycleFactory getRequestCycleFactory() { > > return requestCycleFactory; > > } > > }; > > } > > > > public Class getHomePage() { > > return Main.class; > > } > > }package test.base; > > > > import org.hibernate.HibernateException; > > import org.hibernate.Session ; > > import org.hibernate.SessionFactory ; > > > > import wicket.Response; > > import wicket.protocol.http.WebRequest; > > import wicket.protocol.http.WebRequestCycle; > > import wicket.protocol.http.WebSession; > > > > public class RequestCycle extends WebRequestCycle { > > private final SessionFactory sessionFactory; > > private Session session = null; > > > > public RequestCycle(WebSession session, WebRequest request, > > Response response, SessionFactory sessionFactory) { > > super(session, request, response); > > this.sessionFactory = sessionFactory; > > } > > > > protected void onEndRequest() { > > if (session != null) { > > try { > > session.close(); > > } catch (HibernateException e) { > > throw new RuntimeException(e); > > } finally { > > session = null; > > } > > } > > } > > > > public Session getHibernateSession() { > > if (session == null) { > > try { > > session = sessionFactory.openSession(); > > } catch (HibernateException e) { > > throw new RuntimeException(e); > > } > > } > > return session; > > } > > }<html> > > <head> > > <title>Sign In</title> > > <link href="tables.css" rel="stylesheet" > type="text/css" /> > > </head> > > <body> > > <span wicket:id="toppanel">panel here</span> > > <fieldset> > > <span wicket:id="signInPanel"/> > > </fieldset> > > </body> > > </html> > > /* > > * $Id: SignIn.java,v 1.1 2006/04/30 21:26:43 Exp $ > $Revision: 1.1 $ > > * $Date: 2006/04/30 21:26:43 $ > > * > > * > > > > ============================================================================== > > > * Licensed under the Apache License, Version 2.0 (the > "License"); > > you may not > > * use this file except in compliance with the License. You may > > obtain a copy of > > * the License at > > * > > * http://www.apache.org/licenses/LICENSE-2.0 > > * > > * Unless required by applicable law or agreed to in writing, > software > > * distributed under the License is distributed on an "AS IS" > > BASIS, WITHOUT > > * WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied. > > See the > > * License for the specific language governing permissions and > > limitations under > > * the License. > > */ > > package test.auth; > > > > import wicket.PageParameters; > > import wicket.markup.html.WebPage; > > > > /** > > * Simple example of a sign in page. It extends SignInPage, a > base > > class which > > * provide standard functionality for typical log-in pages > > * > > * @author Jonathan Locke > > */ > > public final class SignIn extends WebPage { > > /** > > * Construct > > */ > > public SignIn() { > > this(null); > > } > > > > /** > > * Constructor > > * > > * @param parameters > > * The page parameters > > */ > > public SignIn(final PageParameters parameters) { > > // add(new feeple.base.ApplicationHeader("mainNavigation", > > "Sign In!")); > > > > add(new SignInPanel("signInPanel") { > > public boolean signIn(String username, String password) { > > return ((UserSession) > getSession()).authenticate(username, > > password); > > } > > }); > > } > > > > } > > <html xmlns:wicket> > > <body> > > <wicket:panel> > > <span wicket:id="feedback" /> > > <form wicket:id="signInForm"> > > <table> > > > > <tr><td> </td> > > <td><b>Use your network login and > > password</b></td> > > </tr> > > <tr> > > <td align="right">Username:</td> > > <td><input wicket:id="username" > > type="text" value="" size="30" /></td> > > </tr> > > <tr> > > <td align="right">Password:</td> > > <td><input wicket:id="password" > > type="password" value="password" > > size="30" /></td> > > </tr> > > <tr wicket:id="rememberMeRow"> > > <td></td> > > <td><input wicket:id="rememberMe" > > type="checkbox" /> Remember Me</td> > > </tr> > > <tr> > > <td></td> > > <td><input type="submit" name="submit" > > value="Sign In" /> <input > > type="reset" value="Reset" > /></td> > > </tr> > > </table> > > </form> > > </wicket:panel> > > </body> > > </html> > > /* > > * $Id: SignInPanel.java,v 1.2 2006/05/13 13:19:10 Exp $ > > * $Revision: 1.2 $ $Date: 2006/05/13 13:19:10 $ > > * > > * > > > > ============================================================================== > > > > * Licensed under the Apache License, Version 2.0 (the > "License"); > > you may not > > * use this file except in compliance with the License. You may > > obtain a copy of > > * the License at > > * > > * http://www.apache.org/licenses/LICENSE-2.0 > > * > > * Unless required by applicable law or agreed to in writing, > software > > * distributed under the License is distributed on an "AS IS" > > BASIS, WITHOUT > > * WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied. > > See the > > * License for the specific language governing permissions and > > limitations under > > * the License. > > */ > > package test.auth; > > > > import wicket.Application; > > import wicket.markup.html.WebMarkupContainer; > > import wicket.markup.html.form.CheckBox ; > > import wicket.markup.html.form.Form; > > import wicket.markup.html.form.PasswordTextField; > > import wicket.markup.html.form.TextField; > > import wicket.markup.html.panel.FeedbackPanel ; > > import wicket.markup.html.panel.Panel; > > import wicket.model.PropertyModel; > > import wicket.util.value.ValueMap; > > > > /** > > * Reusable user sign in panel with username and password as > well > > as support for > > * cookie persistence of the both. When the SignInPanel's form is > > submitted, the > > * abstract method signIn(String, String) is called, passing the > > username and > > * password submitted. The signIn() method should sign the > user in > > and return > > * null if no error ocurred, or a descriptive String in the event > > that the sign > > * in fails. > > * > > * @author Jonathan Locke > > * @author Juergen Donnerstag > > * @author Eelco Hillenius > > */ > > public abstract class SignInPanel extends Panel { > > /** True if the panel should display a remember-me > checkbox */ > > private boolean includeRememberMe = true; > > > > /** Field for password. */ > > private PasswordTextField password; > > > > /** True if the user should be remembered via form > persistence > > (cookies) */ > > private boolean rememberMe = true; > > > > /** Field for user name. */ > > private TextField username; > > > > /** > > * Sign in form. > > */ > > public final class SignInForm extends Form { > > /** El-cheapo model for form. */ > > private final ValueMap properties = new ValueMap(); > > > > /** > > * Constructor. > > * > > * @param id > > * id of the form component > > */ > > public SignInForm(final String id) { > > super(id); > > > > // Attach textfield components that edit properties map > > // in lieu of a formal beans model > > add(username = new TextField("username", new > > PropertyModel(properties, > > "username"))); > > add(password = new PasswordTextField("password", new > > PropertyModel( > > properties, "password"))); > > > > // MarkupContainer row for remember me checkbox > > WebMarkupContainer rememberMeRow = new > > WebMarkupContainer("rememberMeRow"); > > add(rememberMeRow); > > > > // Add rememberMe checkbox > > rememberMeRow.add(new CheckBox("rememberMe", new > PropertyModel( > > SignInPanel.this, "rememberMe"))); > > > > // Make form values persistent > > setPersistent(rememberMe); > > > > // Show remember me checkbox? > > rememberMeRow.setVisible(includeRememberMe); > > } > > > > /** > > * @see wicket.markup.html.form.Form#onSubmit() > > */ > > public final void onSubmit() { > > if (signIn(getUsername(), getPassword())) { > > // If login has been called because the user was not > yet > > // logged in, than continue to the original destination, > > // otherwise to the Home page > > if (getPage().continueToOriginalDestination()) { > > // HTTP redirect response has been committed. No > more data > > // shall be written to the response. > > setResponsePage(Application.get().getHomePage()); > > } else { > > setResponsePage(Application.get().getHomePage()); > > } > > } else { > > // Try the component based localizer first. If not found > > try the > > // application localizer. Else use the default > > final String errmsg = > > getLocalizer().getString("loginError", this, > > "Unable to sign you in"); > > > > error(errmsg); > > } > > } > > } > > > > /** > > * @see wicket.Component#Component(String) > > */ > > public SignInPanel(final String id) { > > this(id, true); > > } > > > > /** > > * @param id > > * See Component constructor > > * @param includeRememberMe > > * True if form should include a remember-me > checkbox > > * @see wicket.Component#Component(String) > > */ > > public SignInPanel(final String id, final boolean > > includeRememberMe) { > > super(id); > > > > this.includeRememberMe = includeRememberMe; > > > > // Create feedback panel and add to page > > final FeedbackPanel feedback = new > FeedbackPanel("feedback"); > > add(feedback); > > > > // Add sign-in form to page, passing feedback panel as > > // validation error handler > > add(new SignInForm("signInForm")); > > } > > > > /** > > * Removes persisted form data for the signin panel > (forget me) > > */ > > public final void forgetMe() { > > // Remove persisted user data. Search for child component > > // of type SignInForm and remove its related persistence > values. > > getPage().removePersistedFormData( > > SignInPanel.SignInForm.class, true); > > } > > > > /** > > * Convenience method to access the password. > > * > > * @return The password > > */ > > public String getPassword() { > > return password.getModelObjectAsString (); > > } > > > > /** > > * Get model object of the rememberMe checkbox > > * > > * @return True if user should be remembered in the future > > */ > > public boolean getRememberMe() { > > return rememberMe; > > } > > > > /** > > * Convenience method to access the username. > > * > > * @return The user name > > */ > > public String getUsername() { > > return username.getModelObjectAsString (); > > } > > > > /** > > * Convenience method set persistence for username and > password. > > * > > * @param enable > > * Whether the fields should be persistent > > */ > > public void setPersistent(boolean enable) { > > username.setPersistent(enable); > > password.setPersistent(enable); > > } > > > > /** > > * Set model object for rememberMe checkbox > > * > > * @param rememberMe > > */ > > public void setRememberMe(boolean rememberMe) { > > this.rememberMe = rememberMe; > > this.setPersistent(rememberMe); > > } > > > > /** > > * Sign in user if possible. > > * > > * @param username > > * The username > > * @param password > > * The password > > * @return True if signin was successful > > */ > > public abstract boolean signIn(final String username, final > > String password); > > } > > <?xml version=" 1.0"?> > > <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate > Mapping > > DTD 3.0//EN" > > "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd > <http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd>"> > > <!-- Generated Jun 21, 2006 8:00:34 PM by Hibernate Tools > > 3.1.0.beta4 --> > > <hibernate-mapping> > > <class name="test.data.UserCredentials" > table="user_credentials"> > > <id name="recId" type="int"> > > <column name="rec_id" /> > > <generator class="native" /> > > </id> > > <property name="userNm" type="string"> > > <column name="user_nm" length="50" /> > > </property> > > <property name="lastUser" type="string"> > > <column name="last_user" length="40" /> > > </property> > > <property name="lastUpdate" type="timestamp"> > > <column name="last_update" length="23" /> > > </property> > > <property name="credentials" type=" java.lang.Integer"> > > <column name="credentials" /> > > </property> > > </class> > > </hibernate-mapping> > > package test.data; > > // Generated Jun 21, 2006 8:00:35 PM by Hibernate Tools > 3.1.0.beta4 > > > > import java.util.Arrays; > > import java.util.Date; > > import java.util.List; > > > > > > /** > > * UserCredentials generated by hbm2java > > */ > > > > public class UserCredentials implements java.io.Serializable { > > > > > > // Fields > > > > private int recId; > > private String userNm; > > private String lastUser; > > private Date lastUpdate; > > private Integer credentials; > > > > public static List availableRoles = Arrays.asList(new > > String[] { "Administrator", "Manager", "User" }); > > > > // Constructors > > > > /** default constructor */ > > > > > > > > > > public UserCredentials() { > > } > > > > /** minimal constructor */ > > public UserCredentials(int recId) { > > this.recId = recId; > > } > > > > /** full constructor */ > > public UserCredentials(int recId, String userNm, String > > lastUser, Date lastUpdate, Integer credentials) { > > this.recId = recId; > > this.userNm = userNm; > > this.lastUser = lastUser; > > this.lastUpdate = lastUpdate; > > this.credentials = credentials; > > } > > > > > > /* public int hashCode() { > > return recId; > > } > > > > public boolean equals(Object obj) { > > if (obj instanceof UserCredentials) { > > UserCredentials o = (UserCredentials) obj; > > if (recId == recId) { > > return true; > > } > > } > > return false; > > } > > */ > > > > > > // Property accessors > > > > public int getRecId() { > > return this.recId; > > } > > > > public void setRecId(int recId) { > > this.recId = recId; > > > > } > > > > public String getUserNm() { > > return this.userNm; > > } > > > > public void setUserNm(String userNm) { > > this.userNm = userNm; > > > > } > > > > public String getLastUser() { > > return this.lastUser; > > } > > > > public void setLastUser(String lastUser) { > > this.lastUser = lastUser; > > > > } > > > > public Date getLastUpdate() { > > return this.lastUpdate; > > } > > > > public void setLastUpdate(Date lastUpdate) { > > this.lastUpdate = lastUpdate; > > } > > > > public Integer getCredentials() { > > return this.credentials; > > } > > > > public void setCredentials(Integer credentials) { > > this.credentials = credentials; > > > > } > > > > > > public String getRole(){ > > try{ > > int i = credentials.intValue(); > > if(i == 0) > > return "Administrator"; > > else if(i == 1) > > return "Manager"; > > else > > return "User"; > > } > > catch(java.lang.NullPointerException e){ > > return "User"; > > } > > > > } > > > > public void setRole(String s){ > > if(s == null) > > this.setCredentials(new Integer(2)); > > else if(s.equals("Administrator")) > > this.setCredentials(new Integer(0)); > > else if(s.equals ("Manager")) > > this.setCredentials(new Integer(1)); > > else > > this.setCredentials(new Integer(2)); > > this.lastUpdate = new Date(); > > > > } > > > > > > > > > > > > > > } > > package test.auth; > > > > import java.util.Iterator; > > import java.util.List ; > > > > import org.hibernate.Query; > > import org.hibernate.Session; > > import org.hibernate.Transaction; > > > > import test.data.HibernateConnectionMgr ; > > import test.data.UserCredentials ; > > import wicket.protocol.http.WebApplication; > > import wicket.protocol.http.WebSession; > > > > public class UserSession extends WebSession { > > private String user; > > > > public Session getDbSession() { > > return HibernateConnectionMgr.currentSession(); > > } > > > > public final boolean authenticate(final String username, final > > String password) { > > setUserCredentials(username); > > return authenticateAlways(username, password); > > } > > > > private boolean authenticateAlways(final String username, > > final String password) { > > > > user = username; > > if ("".equals(user)) { > > user = null; > > } > > return true; > > } > > > > public boolean isSignedIn() { > > return user != null; > > } > > > > public String getUser() { > > return user; > > } > > > > public void setUser(final String user) { > > this.user = user; > > } > > > > private void setUserCredentials(String username) { > > Session session = HibernateConnectionMgr.currentSession(); > > Transaction tx = session.beginTransaction (); > > Query query = session > > .createQuery(" from UserCredentials u where u.userNm = > > :user"); > > query.setString("user", username); > > query.setMaxResults(1); > > List l = query.list(); > > for (Iterator itr = l.iterator(); itr.hasNext();) { > > UserCredentials u = (UserCredentials) itr.next(); > > } > > tx.commit(); > > } > > > > public UserSession(WebApplication arg0) { > > super(arg0); > > } > > } > > <?xml version="1.0" encoding="utf-8"?> > > <!DOCTYPE hibernate-configuration PUBLIC > > "-//Hibernate/Hibernate Configuration DTD 3.0//EN" > > " > http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> > > <hibernate-configuration> > > <session-factory> > > <property > > name=" hibernate.cglib.use_reflection_optimizer"> > > false</property> > > <property name=" > hibernate.connection.driver_class"> > > > com.microsoft.sqlserver.jdbc.SQLServerDriver</property> > > <property > > name="hibernate.connection.username">dba</property> > > <property name=" hibernate.dialect"> > > > org.hibernate.dialect.SQLServerDialect</property> > > <property name="hibernate.connection.password > > ">lqs</property> > > <property name="hibernate.connection.url"> > > > > jdbc:sqlserver://localhost;DatabaseName=deathcare;SelectMethod=cursor</property> > > > > <property > name="hibernate.show_sql">false</property> > > > > <mapping > > resource="test/data/UserCredentials.hbm.xml"/> > > </session-factory> > > </hibernate-configuration> > > # Set root logger level to DEBUG and its only appender to A1. > > log4j.rootLogger=DEBUG, A1 > > > > # A1 is set to be a ConsoleAppender. > > #log4j.appender.A1=org.apache.log4j.ConsoleAppender > > log4j.appender.A1=org.apache.log4j.FileAppender > > > > # A1 uses PatternLayout. > > log4j.appender.A1.layout=org.apache.log4j.PatternLayout > > log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c > %x - %m%n > > log4j.appender.A1.file=C:/log4j_out.log > > log4j.appender.A1.append=false > > > > log4j.logger.org.apache.commons.digester=DEBUG > > > > > > > ------------------------------------------------------------------------- > > Using Tomcat but need to do more? Need to support web services, > > security? > > Get stuff done quickly with pre-integrated technology to > make your > > job easier > > Download IBM WebSphere Application Server v.1.0.1 based on > Apache > > Geronimo > > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642> > > > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642>> > > > > _______________________________________________ > > Wicket-user mailing list > > Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net> > > <mailto: Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net>> > > https://lists.sourceforge.net/lists/listinfo/wicket-user > <https://lists.sourceforge.net/lists/listinfo/wicket-user> > > > > > > > > ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user