You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by "jeremias.eppler@web.de" <je...@web.de> on 2014/06/14 11:42:38 UTC

Tapestry Security Login?

Hello,

I have a problem with the Tapestry Security Login. The Custom Realm and
the configuration works fine on a desktop app.
But on the web it does not work. If i type in my username and password,
the custom realm loads the user, but the forwarding sends me to
MyApp/login/authentication instead of the Dashboard.

First my AppModule Service file:

    @Contribute( WebSecurityManager.class )
    public static void addRealms( Configuration<Realm> configuration ) {
        BusmasterCustomRealm realm = new BusmasterCustomRealm();
        configuration.add(realm);
    }

    public static void contributeSecurityConfiguration(
Configuration<SecurityFilterChain> configuration,
            SecurityFilterChainFactory factory ) {
        // /authc/** rule covers /authc , /authc?q=name /authc#anchor
urls as well
        configuration.add(factory.createChain( "/authc/**" ).add(
factory.authc()).build() );
    }

    public static void contributeApplicationDefaults(
MappedConfiguration<String, String> configuration )
    {
        // Tynamo's tapestry-security module configuration
        configuration.add( SecuritySymbols.LOGIN_URL, "/Login" );
        configuration.add( SecuritySymbols.SUCCESS_URL, "/Dashboard" );
        configuration.add( SymbolConstants.START_PAGE_NAME, "/Login" );
    }

My Login class:

public class Login {
   
    @Persist
    @NotNull
    @Property
    private String username;
   
    @NotNull
    @Property
    private String password;
   
    @Component( id = "LoginForm" )
    private Form form;
   
    //@Inject
    //private AlertManager alertManager;
      
    void onValidateFrom() {
        if ( !StrChecker.isEmpty( username ) && !StrChecker.isEmpty(
password ) ) {
            UserSessionUCController usuc =
UserSessionUCController.getInstance();
            I_Message msg = usuc.login( username, password );
           
            if ( E_MessageType.SUCCESS != msg.getMessageType() ) {
                form.recordError( "Invalid user name or password." );
            }
        }
    }
   
    Object onSuccess() {
        return Dashboard.class;
    }
}

And the login class:

<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width,
initial-scale=1" />

        <link rel="stylesheet" type="text/css"
href="${asset:style/main.css}" />
        <!-- Favicon -->
        <link rel="shortcut icon" href="${asset:icons/iconBM.png}" />
           
        <title>BusmasterWeb - Login</title>
    </head>
    <body>
           
        <!-- Container -->
        <div id="bm-containter" class="container-fluid">
            <div id="bm-logo">
                <h1 id="bm-header"><a href="Dashboard"><img
src="${asset:icons/LogoRed.png}" height="64"></img></a>BusmasterWeb</h1>
            </div>
            <div class="navbar navbar-default" role="navigation">
                <div class="container-fluid">
                    <div class="navbar-header">
                        <a class="navbar-brand" href="Dashboard"><span
id="bm-brand">Busmaster</span></a>
                    </div>
                   
                </div>
            </div>
            <div class="row">
               
                <!-- Content area -->
                <div id="bm-content" class="col-lg-10">
           
                    <ol class="breadcrumb">
                        <li class="active">
                        Login
                     </li>
                    </ol>
                    <h2>Login</h2>

<div class="container-fluid">
    <t:form t:id="LoginForm" role="form" class="form-horizontal">
      <div class="form-group">
        <t:label for="username">Username:</t:label>
        <t:textfield class="form-control" t:id="username"
name="username" placeholder="Enter username" />
      </div>
      <div class="form-group">
        <t:label for="password">Password:</t:label>
        <t:passwordfield class="form-control" t:id="password"
name="password" placeholder="Password" />
      </div>
          <t:submit class="btn btn-primary" value="Login" />
          <span class="error"></span>
    </t:form>
</div>

                </div>
            </div>
                   
            <!-- Footer area: contains the up arrow link as glyphicon -->
            <div id="bm-footer"><a href="#top"><span id="bm-up-arrow"
class="glyphicon glyphicon-circle-arrow-up"></span><br/>Top</a></div>
        </div>
    </body>
</html>

Regards
    Jeremias


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Tapestry Security Login?

Posted by "jeremias.eppler@web.de" <je...@web.de>.
I am confused it works!

On Sat 14 Jun 2014 11:42:38 AM CEST, jeremias.eppler@web.de wrote:
> Hello,
>
> I have a problem with the Tapestry Security Login. The Custom Realm and
> the configuration works fine on a desktop app.
> But on the web it does not work. If i type in my username and password,
> the custom realm loads the user, but the forwarding sends me to
> MyApp/login/authentication instead of the Dashboard.
>
> First my AppModule Service file:
>
>     @Contribute( WebSecurityManager.class )
>     public static void addRealms( Configuration<Realm> configuration ) {
>         BusmasterCustomRealm realm = new BusmasterCustomRealm();
>         configuration.add(realm);
>     }
>
>     public static void contributeSecurityConfiguration(
> Configuration<SecurityFilterChain> configuration,
>             SecurityFilterChainFactory factory ) {
>         // /authc/** rule covers /authc , /authc?q=name /authc#anchor
> urls as well
>         configuration.add(factory.createChain( "/authc/**" ).add(
> factory.authc()).build() );
>     }
>
>     public static void contributeApplicationDefaults(
> MappedConfiguration<String, String> configuration )
>     {
>         // Tynamo's tapestry-security module configuration
>         configuration.add( SecuritySymbols.LOGIN_URL, "/Login" );
>         configuration.add( SecuritySymbols.SUCCESS_URL, "/Dashboard" );
>         configuration.add( SymbolConstants.START_PAGE_NAME, "/Login" );
>     }
>
> My Login class:
>
> public class Login {
>
>     @Persist
>     @NotNull
>     @Property
>     private String username;
>
>     @NotNull
>     @Property
>     private String password;
>
>     @Component( id = "LoginForm" )
>     private Form form;
>
>     //@Inject
>     //private AlertManager alertManager;
>
>     void onValidateFrom() {
>         if ( !StrChecker.isEmpty( username ) && !StrChecker.isEmpty(
> password ) ) {
>             UserSessionUCController usuc =
> UserSessionUCController.getInstance();
>             I_Message msg = usuc.login( username, password );
>
>             if ( E_MessageType.SUCCESS != msg.getMessageType() ) {
>                 form.recordError( "Invalid user name or password." );
>             }
>         }
>     }
>
>     Object onSuccess() {
>         return Dashboard.class;
>     }
> }
>
> And the login class:
>
> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd">
>     <head>
>         <meta charset="UTF-8" />
>         <meta name="viewport" content="width=device-width,
> initial-scale=1" />
>
>         <link rel="stylesheet" type="text/css"
> href="${asset:style/main.css}" />
>         <!-- Favicon -->
>         <link rel="shortcut icon" href="${asset:icons/iconBM.png}" />
>
>         <title>BusmasterWeb - Login</title>
>     </head>
>     <body>
>
>         <!-- Container -->
>         <div id="bm-containter" class="container-fluid">
>             <div id="bm-logo">
>                 <h1 id="bm-header"><a href="Dashboard"><img
> src="${asset:icons/LogoRed.png}" height="64"></img></a>BusmasterWeb</h1>
>             </div>
>             <div class="navbar navbar-default" role="navigation">
>                 <div class="container-fluid">
>                     <div class="navbar-header">
>                         <a class="navbar-brand" href="Dashboard"><span
> id="bm-brand">Busmaster</span></a>
>                     </div>
>
>                 </div>
>             </div>
>             <div class="row">
>
>                 <!-- Content area -->
>                 <div id="bm-content" class="col-lg-10">
>
>                     <ol class="breadcrumb">
>                         <li class="active">
>                         Login
>                      </li>
>                     </ol>
>                     <h2>Login</h2>
>
> <div class="container-fluid">
>     <t:form t:id="LoginForm" role="form" class="form-horizontal">
>       <div class="form-group">
>         <t:label for="username">Username:</t:label>
>         <t:textfield class="form-control" t:id="username"
> name="username" placeholder="Enter username" />
>       </div>
>       <div class="form-group">
>         <t:label for="password">Password:</t:label>
>         <t:passwordfield class="form-control" t:id="password"
> name="password" placeholder="Password" />
>       </div>
>           <t:submit class="btn btn-primary" value="Login" />
>           <span class="error"></span>
>     </t:form>
> </div>
>
>                 </div>
>             </div>
>
>             <!-- Footer area: contains the up arrow link as glyphicon -->
>             <div id="bm-footer"><a href="#top"><span id="bm-up-arrow"
> class="glyphicon glyphicon-circle-arrow-up"></span><br/>Top</a></div>
>         </div>
>     </body>
> </html>
>
> Regards
>     Jeremias
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org