struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mathias-ewald <nitehoax...@gmx.net>
Subject Login with Struts2
Date Thu, 16 Jul 2009 18:37:22 GMT

Hi,

I am trying to implement a login mechanism. I will now explain what I did
and what error I get but in case there is a more sophisticated way to do
that - please tell me!

I created a BaseAction which is the parent of all my Actions. The BaseAction
is supposed to be responsible for displaying a login page if there is no
User object in session scope. Then the login form should put the username
and password into the BaseAction. The BaseAction then tries to find a match
in the database and places the User object into session scope:

---------------------
public abstract class BaseAction {

	private String username;
	
	private String password;
	
	protected Log log;
	
	private Boolean loginStatus;
	
	
	public String execute() {
		if(log == null) {
			log = LogFactory.getLog(getClass());
		}
				
		if(isProtected()) {
			Map<String, Object> session = ActionContext.getContext().getSession();
			Object o = session.get("user");
			if(o instanceof User) {
				loginStatus = true;
			} else {
				return "login";
			}
		}
		
		
		return executeAction();
	}

	
	public abstract String executeAction();

	public abstract Boolean isProtected();
	

	public Boolean getLoginStatus() {
		return loginStatus;
	}

	public void setLoginStatus(Boolean loginStatus) {
		this.loginStatus = loginStatus;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
}
---------------------

An Action that wants to be password protected must implement #isProtected()
to return "true". This is my JSP file that is shown if #isProtected() ==
true and there's no User in session scope:

---------------------
...
<s:form>
	<s:textfield label="Username" name="userData.username"></s:textfield>
	<s:password label="Password" name="userData.password"></s:password>
	<s:submit></s:submit>
</s:form>
...
---------------------

This is the error I get

---------------------
20:35:42,179  WARN OgnlValueStack:49 - Error setting value
ognl.OgnlException: target is null for setProperty(null, "password",
[Ljava.lang.String;@1f22dad5)
	at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1651)
	at ognl.ASTProperty.setValueBody(ASTProperty.java:101)
	at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
	at ognl.SimpleNode.setValue(SimpleNode.java:246)
	at ognl.ASTChain.setValueBody(ASTChain.java:172)
	at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
	at ognl.SimpleNode.setValue(SimpleNode.java:246)
	at ognl.Ognl.setValue(Ognl.java:476)
...
---------------------


Why is that happening?

cu
mathias
-- 
View this message in context: http://www.nabble.com/Login-with-Struts2-tp24522078p24522078.html
Sent from the Struts - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message