I'm sorry, I should have asked for your ComponentRequestFilter implementation source too. ;)

On Tue, 06 Aug 2013 08:31:15 -0300, Will N. <llcool_wil...@yahoo.fr> wrote:

Am 06.08.2013 13:25, schrieb Thiago H de Paula Figueiredo:
On Tue, 06 Aug 2013 05:10:37 -0300, Will N. <llcool_wil...@yahoo.fr> wrote:

Hi,

Hi!

I am trying secure some pages of my application as shown in this tutorial. http://tapestryjava.blogspot.co.uk/search/label/security
But I am having following error message when I start the application.
Since the RequiresLoginFilte class implements the ComponentRequestFilter interface, I am confused about the coertion error!

The error is weird. Could you post your PmsModule.contributeComponentRequestHandler() method
/**
* This module is automatically included as part of the Tapestry IoC Registry, * it's a good place to configure and extend Tapestry, or to place your own
  * service definitions. spring
  */
public class PmsModule {
//    public static void bind(ServiceBinder binder) {
//        // binder.bind(MyServiceInterface.class, MyServiceImpl.class);
//
// // Make bind() calls on the binder object to define most IoC services. // // Use service builder methods (example below) when the implementation // // is provided inline, or requires more initialization than simply
//        // invoking the constructor.
//        binder.bind(ArbeitspaketDao.class, ArbeitspaketDaoImpl.class);
//        binder.bind(AufgabeDao.class, AufgabeDaoImpl.class);
//        binder.bind(BasicDao.class, BasicDaoImpl.class);
//        binder.bind(FunktionDao.class, FunktionDaoImpl.class);
////        binder.bind(GrantedAuthorityBeanDao.class,
////                GrantedAuthorityBeanDaoImpl.class);
//        binder.bind(MitarbeiterDao.class, MitarbeiterDaoImpl.class);
//        binder.bind(MitarbeiterProjektDao.class,
//                MitarbeiterProjektDaoImpl.class);
//        binder.bind(ModulDao.class, ModulDaoImpl.class);
//        binder.bind(PersonMonatDao.class, PersonMonatDaoImpl.class);
//        binder.bind(UserDataDao.class, UserDataDaoImpl.class);
//        binder.bind(ProjektDao.class, ProjektDaoImpl.class);
//        binder.bind(UnteraufgabeDao.class, UnteraufgabeDaoImpl.class);
// binder.bind(UnterunteraufgabeDao.class, UnterunteraufgabeDaoImpl.class);
//
//    }

     public static void contributeFactoryDefaults(
             MappedConfiguration<String, Object> configuration) {
// The application version number is incorprated into URLs for some // assets. Web browsers will cache assets because of the far future
         // expires
// header. If existing assets are changed, the version number should
         // also
// change, to force the browser to download new versions. This overrides
         // Tapesty's default
// (a random hexadecimal number), but may be further overriden by
         // DevelopmentModule or
         // QaModule.
         configuration.override(SymbolConstants.APPLICATION_VERSION,
                 "1.0-SNAPSHOT");
     }

     public static void contributeApplicationDefaults(
             MappedConfiguration<String, Object> configuration) {
// Contributions to ApplicationDefaults will override any contributions
         // to
// FactoryDefaults (with the same key). Here we're restricting the
         // supported
// locales to just "en" (English). As you add localised message catalogs
         // and other assets,
// you can extend this list of locales (it's a comma separated series of
         // locale names;
// the first locale name is the default when there's no reasonable
         // match).
         // configuration.add(SymbolConstants.SUPPORTED_LOCALES, "en");
         configuration.add(SymbolConstants.SUPPORTED_LOCALES, "de");
         configuration.add(SymbolConstants.COMPRESS_WHITESPACE, "true");

     }

     /**
* This is a service definition, the service will be named "TimingFilter". * The interface, RequestFilter, is used within the RequestHandler service * pipeline, which is built from the RequestHandler service configuration.
      * Tapestry IoC is responsible for passing in an appropriate Logger
* instance. Requests for static resources are handled at a higher level, so
      * this filter will only be invoked for Tapestry related requests.
      * <p/>
      * <p/>
* Service builder methods are useful when the implementation is inline as
      * an inner class (as here) or require some other kind of special
* initialization. In most cases, use the static bind() method instead.
      * <p/>
      * <p/>
* If this method was named "build", then the service id would be taken from * the service interface and would be "RequestFilter". Since Tapestry * already defines a service named "RequestFilter" we use an explicit
      * service id that we can reference inside the contribution method.
      */
     public RequestFilter buildTimingFilter(final Logger log) {
         return new RequestFilter() {
             public boolean service(Request request, Response response,
                     RequestHandler handler) throws IOException {
                 long startTime = System.currentTimeMillis();

                 try {
                     // The responsibility of a filter is to invoke the
                     // corresponding method
// in the handler. When you chain multiple filters together,
                     // each filter
// received a handler that is a bridge to the next filter.

                     return handler.service(request, response);
                 } finally {
long elapsed = System.currentTimeMillis() - startTime;

log.info(String.format("Request time: %d ms", elapsed));
                 }
             }
         };
     }

     /**
* This is a contribution to the RequestHandler service configuration. This * is how we extend Tapestry using the timing filter. A common use for this
      * kind of filter is transaction management or security. The @Local
* annotation selects the desired service by type, but only from the same
      * module. Without @Local, there would be an error due to the other
* service(s) that implement RequestFilter (defined in other modules).
      */
public void contributeRequestHandler(OrderedConfiguration<RequestFilter> configuration, @Local RequestFilter filter) { // Each contribution to an ordered configuration has a name, When
         // necessary, you may
// set constraints to precisely control the invocation order of the
         // contributed filter
         // within the pipeline.

         configuration.add("Timing", filter);
     }


     @SuppressWarnings("unchecked")
public static void contributeComponentRequestHandler(OrderedConfiguration configuration) { configuration.addInstance("RequiresLogin", RequiresLoginFilter.class);

     }






}

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



--
Thiago H. de Paula Figueiredo

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

Reply via email to