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: [email protected]
For additional commands, e-mail: [email protected]