Excellent! Thanks for thep help, everyone!! This has made my life so much easier...
Got it working like this: In my implementation of RequestSecurityManager: public boolean checkForInsecureRequest(String pageName) throws IOException { return false; } public String getBaseURL(Page page) { return baseURLSource.getBaseURL(request.isSecure()); } In my Appmodule: public static void contributeAlias(Configuration<AliasContribution> configuration, @InjectService("Request") Request request, @InjectService("BaseURLSource") BaseURLSource baseURLSource) { RequestSecurityManager manager = new MyRequestSecurityManager(request, baseURLSource); configuration.add(AliasContribution.create(RequestSecurityManager.class, manager)); } On Wed, Nov 26, 2008 at 12:42 PM, Michael Gerzabek <[EMAIL PROTECTED] > wrote: > Inge Solvoll schrieb: > >> Thanks, I'll look into that then. >> >> What I want to do: >> >> 1. The user accesses http://myserver.com/mypage. Should get the same >> url/protocol in return. >> 2. The user accesses https://myserver.com/mypage. Should get the same >> url/protocol in return. >> >> > Ok, > > so then forget BaseURLSource and implement RequestSecurityManager. The code > could be something like > > public boolean checkForInsecureRequest( String pageName ) > throws IOException { > > ... copy-n-paste from T5 implementation ... > } > > public String getBaseURL( Page page ) { > > return baseURLSource.getBaseURL( request.isSecure() ); > } > > and get Request injected in your constructor. > > /Michael > > As of now, the user gets a fixed protocol in return, not the protocol he >> requested. >> >> >> >> On Wed, Nov 26, 2008 at 12:29 PM, Michael Gerzabek < >> [EMAIL PROTECTED] >> >> >>> wrote: >>> >>> >> >> >> >>> Inge, >>> >>> not sure that I undestand fully what you are about. It sounds like you >>> also >>> want to implement RequestSecurityManager ( >>> >>> http://tapestry.apache.org/tapestry5/apidocs/org/apache/tapestry5/internal/services/package-tree.html >>> ). >>> This is at least what I did and it works for me. >>> >>> /Michael >>> >>> Inge Solvoll schrieb: >>> >>> I think I know the reason for the loop... >>> >>> >>>> my getBaseURL method is only called when the requested url has a >>>> different >>>> protocol than specified in MetaDataConstants.SECURE_PAGE. It seems that >>>> when >>>> I try to write a base URL in my custom method that has a different >>>> protocol >>>> than SECURE_PAGE value, they start knocking each other's heades with >>>> redirects. >>>> >>>> Right now, it looks like this system works differently than I thought. >>>> Is >>>> it >>>> not possible to override the behaviour of one page or entire application >>>> fixed on a protocol? >>>> >>>> >>>> >>>> On Wed, Nov 26, 2008 at 11:44 AM, Kristian Marinkovic < >>>> [EMAIL PROTECTED]> wrote: >>>> >>>> >>>> >>>> >>>> >>>>> try creating the proxy manually... almost worked every time for me >>>>> >>>>> constructor injection will be performed as expected >>>>> >>>>> public static void contributeAlias( >>>>> ObjectLocator locator, >>>>> Configuration<AliasContribution> configuration ) { >>>>> >>>>> configuration.add( AliasContribution.create( >>>>> BaseURLSource.class, >>>>> locator.proxy(BaseURLSource.class,SomeImplementation.class) ); >>>>> >>>>> } >>>>> >>>>> g, >>>>> kris >>>>> >>>>> >>>>> >>>>> >>>>> "Inge Solvoll" <[EMAIL PROTECTED]> >>>>> 26.11.2008 11:37 >>>>> Bitte antworten an >>>>> "Tapestry users" <users@tapestry.apache.org> >>>>> >>>>> >>>>> An >>>>> "Tapestry users" <users@tapestry.apache.org> >>>>> Kopie >>>>> >>>>> Thema >>>>> Re: [T5] Pick up https/http from request >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> Thanks! >>>>> >>>>> But this still gives me the same loop error, because I have to inject >>>>> Request (where you inject SiteServices) into the builder method to >>>>> access >>>>> the secure state of the request: >>>>> >>>>> Caused by: org.apache.tapestry5.ioc.internal.OperationException: >>>>> Construction of service 'Alias' has failed due to recursion: the >>>>> service >>>>> depends on itself in some way. Please check >>>>> org.apache.tapestry5.services.TapestryModule.buildAlias(Logger, String, >>>>> AliasManager, Collection) (at TapestryModule.java:214) for references >>>>> to >>>>> another service that is itself dependent on service 'Alias'. >>>>> >>>>> Inge >>>>> >>>>> On Wed, Nov 26, 2008 at 11:28 AM, Michael Gerzabek >>>>> <[EMAIL PROTECTED] >>>>> >>>>> >>>>> >>>>> >>>>>> wrote: >>>>>> Inge, >>>>>> >>>>>> I did it successfully for a similar purpose: >>>>>> >>>>>> @SuppressWarnings("unchecked") >>>>>> public static void contributeAlias( >>>>>> @InjectService( "SiteBaseURLSource" ) >>>>>> BaseURLSource baseUrlSource, >>>>>> Configuration<AliasContribution> configuration ) { >>>>>> >>>>>> configuration.add( AliasContribution.create( >>>>>> BaseURLSource.class, >>>>>> baseUrlSource ) ); >>>>>> >>>>>> } >>>>>> >>>>>> Don't use the binder but create your own build method: >>>>>> >>>>>> @Marker( SiteServices.class ) >>>>>> public static BaseURLSource buildSiteBaseURLSource( >>>>>> @SiteServices >>>>>> SiteService site ) { >>>>>> >>>>>> return new SiteBaseURLSource( site ); >>>>>> } >>>>>> >>>>>> You can ommit the Marker annotation. >>>>>> >>>>>> /Michael >>>>>> >>>>>> Solvoll schrieb: >>>>>> >>>>>> Hi! >>>>>> >>>>>> >>>>>> >>>>>> >>>>>>> I'm really struggling here as I think I'm approaching a solution. >>>>>>> What >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> I'm >>>>>> >>>>>> >>>>> >>>>> >>>>>> trying to do is to override/decorate/alias/replace the BaseURLSource >>>>>> >>>>>> >>>>>>> >>>>>>> >>>>>> with >>>>>> >>>>>> >>>>> >>>>> >>>>>> my >>>>>> >>>>>> >>>>>>> own implementation, like this: >>>>>>> >>>>>>> public class MyBaseURLSource implements BaseURLSource { >>>>>>> >>>>>>> private final Request request; >>>>>>> >>>>>>> public MyBaseURLSource(Request request) { >>>>>>> this.request = request; >>>>>>> } >>>>>>> >>>>>>> public String getBaseURL(boolean secure) { >>>>>>> boolean secureRequest = request.isSecure(); >>>>>>> String baseURL = String.format("%s://%s", secureRequest ? "https" : >>>>>>> "http", request.getServerName()); >>>>>>> return baseURL; >>>>>>> } >>>>>>> >>>>>>> } >>>>>>> >>>>>>> >>>>>>> Essentially, I've copied the default implementation and replaced the >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> usage >>>>>> >>>>>> >>>>> >>>>> >>>>>> of the secure parameter with the secure value of the request. My >>>>>> >>>>>> >>>>>>> >>>>>>> >>>>>> problem >>>>>> >>>>>> >>>>> >>>>> >>>>>> is >>>>>> >>>>>> >>>>>>> that I'm not capable of putting this code to actual work in the >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> framework. >>>>>> >>>>>> >>>>> >>>>> >>>>>> I've tried: >>>>>> >>>>>> >>>>>>> - aliasing, but that didn't work because of circular dependency (I >>>>>>> have >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> to >>>>>> >>>>>> >>>>> >>>>> >>>>>> inject the Request) >>>>>> >>>>>> >>>>>>> - binder.bind(BaseURLSource.class, MyBaseURLSource.class), combinded >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> with >>>>>> >>>>>> >>>>> >>>>> >>>>>> a >>>>>> >>>>>> >>>>>>> builder for MyBaseURLSource. Causes redirect loop. >>>>>>> - Decorating. Not managed to find out how I do this yet, have tried a >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> few >>>>>> >>>>>> >>>>> >>>>> >>>>>> things. >>>>>> >>>>>> >>>>>>> I'm guessing this is rather simple, it's just a bit complicated when >>>>>>> you're >>>>>>> not experienced in IoC... Anyone who wants to point me in the right >>>>>>> direction? >>>>>>> >>>>>>> Regards >>>>>>> Inge >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Wed, Nov 19, 2008 at 10:22 AM, Inge Solvoll < >>>>>>> [EMAIL PROTECTED] >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>>> wrote: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>>> I voted for this issue now. >>>>>>>> >>>>>>>> https://issues.apache.org/jira/browse/TAP5-167 >>>>>>>> >>>>>>>> This is really a big issue for our usage of T5, T5 is now forcing us >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> to >>>>>>> >>>>>>> >>>>>> >>>>> >>>>>> redirect users away from http access, because we no longer can support >>>>>> >>>>>> >>>>>>> both >>>>>>>> modes as long as T5 is fixed on either http or https. >>>>>>>> >>>>>>>> Anyone who's got a working version of a BaseURLSource contribution, >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> that >>>>>>> >>>>>>> >>>>>> >>>>> >>>>>> actually can output a URL using the protocol from the initial request? >>>>>> >>>>>> >>>>>>> Regards >>>>>>>> Inge >>>>>>>> >>>>>>>> >>>>>>>> On Mon, Nov 17, 2008 at 8:57 AM, Inge Solvoll < >>>>>>>> [EMAIL PROTECTED] >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> I know, this isn't really a problem for regular pages, they load >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> using >>>>>>>> >>>>>>>> >>>>>>> >>>>> >>>>>> the >>>>>> >>>>>> >>>>>>> requested protocol, when not marked as secure. But when I create >>>>>>>>> eventlinks >>>>>>>>> that updates zones, these don't work when they are generated with >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> http >>>>>>>> >>>>>>>> >>>>>>> >>>>> >>>>>> and >>>>>> >>>>>> >>>>>>> the rest of the page is generated in https... >>>>>>>>> >>>>>>>>> What I would like to do is to try some more on the BaseURLSource >>>>>>>>> approach. >>>>>>>>> Anyone who's got any idea why this has no effect here? I copied and >>>>>>>>> pasted >>>>>>>>> the code from the T5 docs and put in my Appmodule, and the >>>>>>>>> contribute >>>>>>>>> method >>>>>>>>> is called on server startup. I replaced the "localhost" url with an >>>>>>>>> obviously bad url, for testing, but nothing happens, all pages just >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> load >>>>>>>> >>>>>>>> >>>>>>> >>>>> >>>>>> as >>>>>> >>>>>> >>>>>>> always, including eventlinks and actionlinks. >>>>>>>>> >>>>>>>>> Inge >>>>>>>>> >>>>>>>>> >>>>>>>>> On Sun, Nov 16, 2008 at 9:44 PM, Carl Crowder < >>>>>>>>> [EMAIL PROTECTED] >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> I don't know if you're aware, but if you create a href something >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> like >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>> >>>>>> href="//something.com/page" >>>>>> >>>>>> >>>>>>> then the current protocol is maintained. So if you were viewing the >>>>>>>>>> page >>>>>>>>>> at https://something.com the HREF would resolve to >>>>>>>>>> https://something.com/page and similarly with http. Unfortunately >>>>>>>>>> it >>>>>>>>>> requires using absolute URLs all the time. >>>>>>>>>> >>>>>>>>>> I'm not sure if that helps, but perhaps it could be used in fixing >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> that >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>> >>>>>> issue. >>>>>> >>>>>> >>>>>>> Carl >>>>>>>>>> >>>>>>>>>> Inge Solvoll wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> Yes, I might. This is a major blow for us, our customers choose >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> freely >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>> >>>>>> whether they want to use http or https, so the T5 way of doing >>>>>> >>>>>> >>>>>>> >>>>>>>>>>> >>>>>>>>>> things >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>> >>>>>> just >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> doesn't work for us... >>>>>>>>>>> >>>>>>>>>>> On Fri, Nov 14, 2008 at 9:28 PM, Jonathan Barker < >>>>>>>>>>> [EMAIL PROTECTED]> wrote: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> You might want to vote for this: >>>>>>>>>>>> >>>>>>>>>>>> https://issues.apache.org/jira/browse/TAP5-167 >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> -----Original Message----- >>>>>>>>>>>>> From: Inge Solvoll [mailto:[EMAIL PROTECTED] >>>>>>>>>>>>> Sent: Friday, November 14, 2008 15:10 >>>>>>>>>>>>> To: Tapestry users >>>>>>>>>>>>> Subject: Re: [T5] Pick up https/http from request >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks! >>>>>>>>>>>>> >>>>>>>>>>>>> I tried copying your code into my AppModule with some small >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> modifications. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> But the code only runs on server startup, not when I access a >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> tapestry 5 >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> page. I tried to add deliberate errors in the code, like naming >>>>>>>>>>> the >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> server >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> loooocalhost, but I never saw the results when accessing pages. >>>>>>>>>>>>> >>>>>>>>>>>>> Also, when I try to add "final HttpServletRequest request" as a >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> parameter >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> to >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> the contributeAlias method, my T5.0.13 crashes complaining about >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> service >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> recursion. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> What I need is for T5 to figure out that a user accesses a page >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> with >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>> >>>>>> either >>>>>> >>>>>> >>>>>>> http or https, and respond on the same protocol... >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Regards >>>>>>>>>>>>> Inge >>>>>>>>>>>>> >>>>>>>>>>>>> On Fri, Nov 14, 2008 at 4:43 PM, Keith Bottner >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> <[EMAIL PROTECTED]> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>> >>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> I believe you might be able to use an alternation of a solution >>>>>>>>>>>>> I >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> used >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> for >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> getting https to work properly between my development and >>>>>>>>>>>>>> production >>>>>>>>>>>>>> servers. >>>>>>>>>>>>>> >>>>>>>>>>>>>> public static void >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> contributeAlias(Configuration<AliasContribution> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>> >>>>>> configuration, >>>>>> >>>>>> >>>>>>> @Inject @Value("${"+SymbolConstants.PRODUCTION_MODE+"}" ) final >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> String >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> production >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> { >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> if (0 != production.compareToIgnoreCase("true")) >>>>>>>>>>>>>> { >>>>>>>>>>>>>> BaseURLSource source = new BaseURLSource() >>>>>>>>>>>>>> { >>>>>>>>>>>>>> public String getBaseURL(boolean secure) >>>>>>>>>>>>>> { >>>>>>>>>>>>>> String protocol = secure ? "https" : "http"; >>>>>>>>>>>>>> >>>>>>>>>>>>>> int port = secure ? 8443 : 8080; >>>>>>>>>>>>>> >>>>>>>>>>>>>> return String.format("%s://localhost:%d", >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> protocol, >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> port); >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> } >>>>>>>>>>>>>> }; >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> configuration.add(AliasContribution.create(BaseURLSource.class, >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> source)); >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> } >>>>>>>>>>>>>> } >>>>>>>>>>>>>> >>>>>>>>>>>>>> Somehow make this dependent on the user selection and return >>>>>>>>>>>>>> it >>>>>>>>>>>>>> accordingly. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Not a quick solution but possible a direction to try! >>>>>>>>>>>>>> >>>>>>>>>>>>>> Keith >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Nov 14, 2008, at 7:18 AM, Inge Solvoll wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> Hi! >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>>> My web application is large and consists of Struts, T4 and T5 >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> pages. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> In >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> Struts and T4, I use the current http request to figure out >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> whether >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>> >>>>>> to >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> use >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> https or not. Users can choose if they want to log in using >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> https >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>> >>>>>> or >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> not. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> The chosen protocol is used on all pages after login. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>>> In T5, this is either a global static setting, or a static >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> setting >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>> >>>>>> per >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> page. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> Is there a service or something I can override to implement my >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> own >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>> >>>>>> "protocol >>>>>> >>>>>> >>>>>>> builder"? Something like this: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> public class HttpProtocolBuilder { >>>>>>>>>>>>>>> public HttpProtocolBuilder (final HttpServletRequest >>>>>>>>>>>>>>> request) >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> { >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>> >>>>>> this.request = request >>>>>> >>>>>> >>>>>>> } >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> public String getProtocol() { >>>>>>>>>>>>>>> if (request.isSecure()) { >>>>>>>>>>>>>>> return "https"; >>>>>>>>>>>>>>> } >>>>>>>>>>>>>>> else { >>>>>>>>>>>>>>> return "http"; >>>>>>>>>>>>>>> } >>>>>>>>>>>>>>> } >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Regards >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Inge >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>> --------------------------------------------------------------------- >>>>> >>>>> >>>>> >>>>> >>>>>> 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] >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> 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] > >