You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Lukasz Lenart (JIRA)" <ji...@apache.org> on 2018/09/05 06:24:00 UTC

[jira] [Commented] (WW-4957) Update struts version from 2.5.10 to 2.5.17. LocalizedTextUtil class is removed and GlobalLocalizedTextProvider&StrutsLocalizedTextProvider cannot be used instead.

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

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

Why don't you use {{struts.custom.i18n.resources}}?

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

http://struts.apache.org/core-developers/localization.html#global-resources-strutscustomi18nresources-in-strutsproperties

> 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
>            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)