[ 
https://issues.apache.org/jira/browse/WW-4957?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16604349#comment-16604349
 ] 

Lukasz Lenart commented on WW-4957:
-----------------------------------

This doesn't that way, you cannot manually create 
{{GlobalLocalizedTextProvider}} and change its properties. It's a bean that 
will be injected bt internal DI mechanism. And {{GlobalLocalizedTextProvider}} 
is a dedicated implementation that only loads and uses global properties, it 
doesn't scan package hierarchy to find related properties files (eg. 
{{package.properties}} or {{<ActionName>.properties}}).

If you just want to add a global properties file, just define the below 
constant and that's all. It supposed to work and your custom code is not needed.

{code:xml}
<constant name="struts.custom.i18n.resources" value="global" />
{code}

> Update struts version from 2.5.10 to 2.5.17. LocalizedTextUtil class is 
> removed and GlobalLocalizedTextProvider&StrutsLocalizedTextProvider cannot be 
> used instead.
> -------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: WW-4957
>                 URL: https://issues.apache.org/jira/browse/WW-4957
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.5.17
>            Reporter: Konstantinos
>            Assignee: Lukasz Lenart
>            Priority: Major
>             Fix For: 2.6
>
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> I have an application that uses struts version 2.5.10.1. i want to update it 
> to version 2.5.17 after the announcement of the Apache Software Foundation 
> that Struts 2.5 to 2.5.16 versions are vulnerable to remote attackers. In my 
> current version i use a struts-core library class called LocalizedTextUtil to 
> load messages from the global message bundle. My code below:
> {code:java}
> private void initialiseMessageBundle() throws InitializationError{
>     LOG.info("Loading global messages from " + DEFAULT_RESOURCE);
>     URL[] urls;
>     try {
>         String resourceFolder = 
> PropertiesManager.get(Constants.PROP_RESOURCES_FOLDER);
>         File file = new File(resourceFolder);
>         if (!file.exists() || !file.isDirectory()){
>             LOG.error("file not found: path(" + 
> Constants.PROP_RESOURCES_FOLDER + ") = " + resourceFolder);
>             throw new InitializationError("External resource not found file 
> not found");
>         } else {
>             LOG.debug("resources file: " + file.toURI().toURL());
>         }
>         URL url = file.toURI().toURL();
>         urls = new URL[]{url};
>         ClassLoader cl = new URLClassLoader(urls);
>         LocalizedTextUtil.setDelegatedClassLoader(cl);
>         LocalizedTextUtil.addDefaultResourceBundle("global");
>     } catch (MalformedURLException e) {
>         throw new InitializationError("MalformedURLException occured during 
> the messageBundle initialisation", e);
>     }
>     LOG.info("Global messages loaded.");
> }
> {code}
>  
> After updating the struts version to 2.5.17 the *LocalizedTextUtil* class is 
> removed. Although i create a new instance of class 
> *GlobalLocalizedTextProvider* and *StrutsLocalizedTextProvider* and used the 
> same methods (*setDelegatedClassLoader*,*addDefaultResourceBundle*) my 
> messages are not been loaded. Also i create a bean of these classes on 
> struts.xml and tried to inject it but again without success. Do you have any 
> thought how can i replace the LocalizedTextUtil in my code above?
> Thank you.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to