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)