You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shiro.apache.org by "atomicknight (JIRA)" <ji...@apache.org> on 2015/03/18 20:18:38 UTC

[jira] [Created] (SHIRO-530) INI parser does not properly handled backslashes at end of values

atomicknight created SHIRO-530:
----------------------------------

             Summary: INI parser does not properly handled backslashes at end of values
                 Key: SHIRO-530
                 URL: https://issues.apache.org/jira/browse/SHIRO-530
             Project: Shiro
          Issue Type: Bug
          Components: Configuration
    Affects Versions: 1.2.3
            Reporter: atomicknight


The backslash character is overloaded for use as a continuation delimiter as well as an escape character. However, the parsing logic does not presently handle this character consistently, which prevents the use of odd numbers of backslashes at the end of values. Here is a matrix of examples:
||Original value||Parsed value||Notes||
|{noformat}
key=value\
{noformat}|{noformat}
key=value
{noformat}|Backslash treated as continuation delimiter|
|{noformat}
key=value\\
{noformat}|{noformat}
key=value\\
{noformat}|Backslashes treated as literal characters|
|{noformat}
key=value\\\
{noformat}|{noformat}
key=value\\
{noformat}|Final backslash treated as continuation delimiter, other backslashes treated as literal characters|
|{noformat}
key=value\\\\
{noformat}|{noformat}
key=value\\\\
{noformat}|Backslashes treated as literal characters|
There is a comment in Ini.Section#isContinued(String) that states:
{quote}
//find the number of backslashes at the end of the line.  If an even number, the
//backslashes are considered escaped.  If an odd number, the line is considered continued on the next line
{quote}
However, there is no unescaping logic in either Ini.Section#toMapProps(String) (which calls #isContinued) or IniSection#splitKeyValue(String).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)