-----Original Message-----
From: Filippov, Andrey 
Sent: Wednesday, November 07, 2007 6:17 PM
To: Struts Users Mailing List
Subject: RE: struts2 + jaas on jboss...


Hi Martin!
Thanx for Your answer!
Here is my SessionLogin.java file:

----------------------------------------------------------------------------

package com.fil.struts.login;

import java.io.ByteArrayInputStream;
import java.rmi.RemoteException;
import java.util.*;

import javax.ejb.CreateException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;
import javax.security.auth.Subject;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.login.LoginContext;
import javax.security.auth.login.LoginException;

import org.jboss.security.SimplePrincipal;
import org.jboss.security.auth.callback.SecurityAssociationHandler;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.tsystems.struts.ejb.test.*;

public class SessionLogin extends ActionSupport {

        /**
         * 
         */
        private static final long serialVersionUID = 2452642373778L;

        private String userId;

        private String password;

        public byte[] foto;

        PersonaHome personaHome = null;

        Persona personaObject = null;

        public String execute() throws Exception {

                Properties prop = new Properties();
                String j_username = null;
                String j_password = null;
                try {
                        SecurityAssociationHandler handler = new 
SecurityAssociationHandler();

                        SimplePrincipal user = new SimplePrincipal(j_username);
                        handler.setSecurityInfo(user, j_password.toCharArray());
                        LoginContext loginContext = new 
LoginContext("dbStrutsRealm",
                                        (CallbackHandler) handler);
                        loginContext.login();
                        Subject subject = loginContext.getSubject();
                        Set principals = subject.getPrincipals();
                        principals.add(user);
                } catch (LoginException e) {
                        e.printStackTrace();

                }

                prop.put(Context.INITIAL_CONTEXT_FACTORY,
                                "org.jnp.interfaces.NamingContextFactory");
                prop.put(Context.PROVIDER_URL, "localhost:1099");

                try {
                        Context ctx = new InitialContext(prop);
                        Object tsRef = ctx.lookup("FilStruts2");
                        personaHome = (PersonaHome) 
PortableRemoteObject.narrow(tsRef,
                                        PersonaHome.class);
                        personaObject = personaHome.create();
                } catch (NamingException e) {
                        e.printStackTrace();
                        System.out.println("NamingException");
                }

                if (personaObject.getPersonaFirstName(userId)
                                && personaObject.getPersonaPassword(password)) {

                        foto = personaObject.getPersonaPhoto(userId);
                        System.out.println(foto.toString());

                        Map session = ActionContext.getContext().getSession();
                        session.put("logged-in", "true");
                        return "SUCCESS";
                } else {
                        return "ERROR";
                }

        }

        public String getPassword() {
                return password;
        }

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

        public String getUserId() {
                return userId;
        }

        public void setUserId(String userId) {
                this.userId = userId;
        }

        public byte[] getFoto() {

                return foto;
        }

        public void setFoto(byte[] foto) {
                this.foto = foto;
        }

}

----------------------------------------------------------------------------

here is my struts.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd";>

<struts>

<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />



<package name="login" namespace="/login" extends="struts-default" >

<result-types> 
<result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/> 
</result-types>


<action name="Login">
<result>/jsp/Login.jsp</result>
</action>


<action name="Login1" class="com.fil.struts.login.SessionLogin">
<result name="ERROR">/jsp/Login.jsp</result>
<result type="tiles" name="SUCCESS">success</result>
</action>

<action name="Admin" class="com.fil.struts.login.AdminPage">
<result name="ERROR">/jsp/Login.jsp</result>
<result name="SUCCESS">/jsp/AdminPage.jsp</result>
</action>

<action name="Logout" class="com.fil.struts.login.SessionLogout">
<result name="SUCCESS">/jsp/Login.jsp</result>
</action>


<!-- Add actions here -->
</package>


<!-- Add packages here -->

</struts>





Sincerely yours,
Andrey V. Filippov






-----Original Message-----
From: Martin Gainty [mailto:[EMAIL PROTECTED]
Sent: Tuesday, November 07, 2000 6:01 PM
To: Struts Users Mailing List
Cc: [EMAIL PROTECTED]
Subject: Re: struts2 + jaas on jboss...


Andrey-

Cursory look saysthat the result was either not defined and or the exepected
result was not returned for SessionLogin Class
Can we see the code for SessionLogin.java ?
also show us how the result is configured for SessionLogin in struts.xml
e.g.
        <action name="date" class="org.apache.struts2.showcase.DateAction"
method="browse">
            <result name="success">/date.jsp</result>
        </action>


Martin
----- Original Message -----
From: "Filippov, Andrey" <[EMAIL PROTECTED]>
To: <user@struts.apache.org>
Cc: <[EMAIL PROTECTED]>
Sent: Wednesday, November 07, 2007 8:50 AM
Subject: struts2 + jaas on jboss...



Hi everybody!

I have this problem - I could not manage to configure it to work together.
Does someone happen to know how to do it? I appriciate any kind of
information!!
Initially I used the following source:
http://www.javaworld.com/javaforums/showthreaded.php?Cat=2&Number=2500&page=
0
And I have the following:

jboss-web.xml
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<security-domain>java:/jaas/dbStrutsRealm</security-domain>
</jboss-web>
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--------------
snippet from login-config.xml

<application-policy name = "dbStrutsRealm">
   <authentication>
   <login-module code =
"org.jboss.security.auth.spi.DatabaseServerLoginModule"
         flag = "required">
         <module-option name =
"dsJndiName">java:/FilStrutsDS</module-option>
         <module-option name = "principalsQuery">
               select password from test_login where login_name=?
         </module-option>
         <module-option name = "rolesQuery">
               SELECT role_name, 'Roles' FROM user_in_roles INNER JOIN roles
ON user_in_roles.role=roles.id where user_in_roles.user=?
         </module-option>
         <module-option name = "debug">true</module-option>
   </login-module>
   </authentication>
</application-policy>
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--------------
snippet from web.xml
<security-constraint>
  <web-resource-collection>
<web-resource-name>
action
</web-resource-name>
<description>
Struts security test
</description>
<url-pattern>/Logout.action</url-pattern>
<http-method>HEAD</http-method>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
  </web-resource-collection>
  <auth-constraint>
  <role-name>access</role-name>
  </auth-constraint>
  <user-data-constraint>
  <description>
noo
</description>
<transport-guarantee>
NONE
</transport-guarantee>
  </user-data-constraint>
</security-constraint>


<login-config>
<auth-method>FORM</auth-method>
<realm-name>struts_test</realm-name>
<form-login-config>
<form-login-page>/Login.action</form-login-page>
<form-error-page>/jsp/Login_error.jsp</form-error-page>
</form-login-config>
</login-config>

<security-role>
<description/>
<role-name>access</role-name>
</security-role>
<security-role>
<description/>
<role-name>rejection</role-name>
</security-role>
<security-role>
<description/>
<role-name>misc</role-name>
</security-role>
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--------------
snippet from struts.xml

<package name="login" namespace="/login" extends="struts-default" >
<result-types>
<result-type name="tiles"
class="org.apache.struts2.views.tiles.TilesResult"/>
</result-types>
<action name="Login">
<result>/jsp/Login.jsp</result>
</action>
<action name="Login1" class="com.fil.struts.login.SessionLogin">
<result name="ERROR">/jsp/Login.jsp</result>
<result type="tiles" name="SUCCESS">success</result>
</action>
<action name="Logout" class="com.fil.struts.login.SessionLogout">
<result name="SUCCESS">/jsp/Login.jsp</result>
</action>
<!-- Add actions here -->
</package>
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--------------
snippet from login.jsp
<form name="logonForm" action="Login1.action" method="POST">
    <table>
        <tr>
<td colspan="2">
Login
</td>

</tr>

  <tr>
   <td colspan="2">
         <input type="text" name="j_username" SIZE=25/><br>
      <input type="password" name="j_password" SIZE=25/><br>
      <input type="submit" onclick="javascript:submitForm();"
value="Login"/>
   </td>
  </tr>
  </table>
    </form>
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--------------
Finally, when I submit the mentioned in the login.jsp form I get the
following message:

Struts Problem Report
Struts has detected an unhandled exception:
Messages: No result defined for action com.fil.struts.login.SessionLogin and
result input
File:
file:/C:/jboss-4.0.5.GA/server/default/./tmp/deploy/tmp15883StrutsSessionLog
In-exp.war/WEB-INF/classes/struts.xml
Line number: 25
Column number: 65

<action name="Login1" class="com.fil.struts.login.SessionLogin">
<result name="ERROR">/jsp/Login.jsp</result>
<result type="tiles" name="SUCCESS">success</result>

Stacktraces
No result defined for action com.fil.struts.login.SessionLogin and result
input - action -
file:/C:/jboss-4.0.5.GA/server/default/./tmp/deploy/tmp15883StrutsSessionLog
In-exp.war/WEB-INF/classes/struts.xml:25:65

com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionI
nvocation.java:350)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocati
on.java:253)

com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(Validati
onInterceptor.java:150)

org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.do
Intercept(AnnotationValidationInterceptor.java:48)

com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Method
FilterInterceptor.java:86)

com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionI
nvocation.java:224)

com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionI
nvocation.java:223)

com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack
java:455)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocati
on.java:221)

com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(Con
versionErrorInterceptor.java:123)

com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionI
nvocation.java:224)

com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionI
nvocation.java:223)

com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack
java:455)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocati
on.java:221)


What I am doing wrong? Please correct me!!
Thanx a lot.





Sincerely yours,
Andrey V. Filippov


Sincerely yours,
Andrey V. Filippov



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to