You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
5.1 KiB
143 lines
5.1 KiB
7 years ago
|
From cd586dfa4ade4ea574aae0fa6ac034c07c77b25a Mon Sep 17 00:00:00 2001
|
||
|
From: Dominic Cleal <dcleal@redhat.com>
|
||
|
Date: Fri, 12 Jun 2015 09:47:48 +0100
|
||
|
Subject: [PATCH] Revert "Jaas: add several improvements to cover more valid
|
||
|
syntax"
|
||
|
|
||
|
This partially reverts commit d17f2fbc30a52edb3719fc6df4c24f01552dd203
|
||
|
for compatibility with Augeas 1.1.0.
|
||
|
|
||
|
Trailing semicolons remain part of the last value. Only support for
|
||
|
"naked" booleans has been kept from 1.4.0.
|
||
|
|
||
|
Conflicts:
|
||
|
NEWS
|
||
|
---
|
||
|
lenses/jaas.aug | 29 ++++++++++++-----------------
|
||
|
lenses/tests/test_jaas.aug | 21 ++++++++++-----------
|
||
|
2 files changed, 22 insertions(+), 28 deletions(-)
|
||
|
|
||
|
diff --git a/lenses/jaas.aug b/lenses/jaas.aug
|
||
|
index 4f06bad9..a13682e3 100644
|
||
|
--- a/lenses/jaas.aug
|
||
|
+++ b/lenses/jaas.aug
|
||
|
@@ -1,36 +1,31 @@
|
||
|
(* Module Jaas *)
|
||
|
-(* Original Author: Simon Vocella <voxsim@gmail.com> *)
|
||
|
-(* Updated by: Steve Shipway <steve@steveshipway.org> *)
|
||
|
-(* Changes: allow comments within Modules, allow optionless flags, *)
|
||
|
-(* allow options without linebreaks, allow naked true/false options *)
|
||
|
-(* Trailing ';' terminator should not be included in option value *)
|
||
|
-(* Note: requires latest Util.aug for multiline comments to work *)
|
||
|
+(* Author: Simon Vocella <voxsim@gmail.com> *)
|
||
|
|
||
|
module Jaas =
|
||
|
|
||
|
autoload xfm
|
||
|
|
||
|
let space_equal = del (/[ \t]*/ . "=" . /[ \t]*/) (" = ")
|
||
|
-let lbrace = del (/[ \t\n]*\{[ \t]*\n/) " {\n"
|
||
|
-let rbrace = del (/[ \t]*}[ \t]*;/) " };"
|
||
|
+let lbrace = del (/[ \t\n]*/ . "{") "{"
|
||
|
+let rbrace = del ("};") "};"
|
||
|
let word = /[A-Za-z0-9_.-]+/
|
||
|
-let wsnl = del (/[ \t\n]+/) ("\n")
|
||
|
-let endflag = del ( /[ \t]*;/ ) ( ";" )
|
||
|
+let wordonly = /[A-Za-z0-9_.-]+;/
|
||
|
|
||
|
let value_re =
|
||
|
let value_squote = /'[^\n']*'/
|
||
|
+ in let value_squote_2 = /'[^\n']*';/
|
||
|
in let value_dquote = /"[^\n"]*"/
|
||
|
- in let value_tf = /(true|false)/
|
||
|
- in value_squote | value_dquote | value_tf
|
||
|
+ in let value_dquote_2 = /"[^\n"]*";/
|
||
|
+ in let value_tf = /(true|false);/
|
||
|
+ in let value_tf_2 = /(true|false);/
|
||
|
+ in value_squote | value_squote_2 | value_dquote | value_dquote_2 | value_tf | value_tf_2
|
||
|
|
||
|
-let moduleOption = [ wsnl . key word . space_equal . (store value_re) ]
|
||
|
-let moduleSuffix = ( moduleOption | Util.eol . Util.comment_c_style | Util.comment_multiline )
|
||
|
-let flag = [ Util.del_ws_spc . label "flag" . (store word) . moduleSuffix* . endflag ]
|
||
|
-let loginModuleClass = [( Util.del_opt_ws "" . label "loginModuleClass" . (store word) . flag ) ]
|
||
|
+let moduleOption = [Util.del_opt_ws "" . key word . space_equal . (store value_re . Util.comment_or_eol)]
|
||
|
+let flag = [label "flag" . ((store word . Util.eol . moduleOption+) | (store wordonly . Util.eol))]
|
||
|
+let loginModuleClass = [Util.del_opt_ws "" . label "loginModuleClass" . (store word . Util.del_ws_spc) . flag]
|
||
|
|
||
|
let content = (Util.empty | Util.comment_c_style | Util.comment_multiline | loginModuleClass)*
|
||
|
let loginModule = [Util.del_opt_ws "" . label "login" . (store word . lbrace) . (content . rbrace)]
|
||
|
-
|
||
|
let lns = (Util.empty | Util.comment_c_style | Util.comment_multiline | loginModule)*
|
||
|
let filter = incl "/opt/shibboleth-idp/conf/login.config"
|
||
|
let xfm = transform lns filter
|
||
|
diff --git a/lenses/tests/test_jaas.aug b/lenses/tests/test_jaas.aug
|
||
|
index 5f2bfb13..d5ede698 100644
|
||
|
--- a/lenses/tests/test_jaas.aug
|
||
|
+++ b/lenses/tests/test_jaas.aug
|
||
|
@@ -54,7 +54,6 @@ ShibUserPassAuth {
|
||
|
serviceCredential = \"ldappassword\"
|
||
|
ssl = \"false\"
|
||
|
userField = \"uid\"
|
||
|
- // Example comment within definition
|
||
|
subtreeSearch = \"true\";
|
||
|
};
|
||
|
|
||
|
@@ -64,8 +63,9 @@ NetAccountAuth {
|
||
|
};
|
||
|
|
||
|
com.sun.security.jgss.krb5.initiate {
|
||
|
- // Test of omitted linebreaks and naked boolean
|
||
|
- com.sun.security.auth.module.Krb5LoginModule required useTicketCache=true;
|
||
|
+ // Test of naked boolean
|
||
|
+ com.sun.security.auth.module.Krb5LoginModule required
|
||
|
+ useTicketCache=true;
|
||
|
};"
|
||
|
|
||
|
test Jaas.lns get conf =
|
||
|
@@ -90,6 +90,7 @@ test Jaas.lns get conf =
|
||
|
{ }
|
||
|
{ "login" = "ShibUserPassAuth"
|
||
|
{ }
|
||
|
+ { }
|
||
|
{ "#comment" = "Example LDAP authentication" }
|
||
|
{ "#comment" = "See: https://wiki.shibboleth.net/confluence/display/SHIB2/IdPAuthUserPass" }
|
||
|
{ "#mcomment"
|
||
|
@@ -116,29 +117,27 @@ test Jaas.lns get conf =
|
||
|
{ "serviceCredential" = "\"ldappassword\"" }
|
||
|
{ "ssl" = "\"false\"" }
|
||
|
{ "userField" = "\"uid\"" }
|
||
|
- { "#comment" = "Example comment within definition" }
|
||
|
- { "subtreeSearch" = "\"true\"" }
|
||
|
+ { "subtreeSearch" = "\"true\";" }
|
||
|
}
|
||
|
}
|
||
|
- { }
|
||
|
}
|
||
|
{ }
|
||
|
{ }
|
||
|
{ "login" = "NetAccountAuth"
|
||
|
+ { }
|
||
|
{ "#comment" = "Test of optionless flag" }
|
||
|
{ "loginModuleClass" = "nz.ac.auckland.jaas.Krb5LoginModule"
|
||
|
- { "flag" = "required" }
|
||
|
+ { "flag" = "required;" }
|
||
|
}
|
||
|
- { }
|
||
|
}
|
||
|
{ }
|
||
|
{ }
|
||
|
{ "login" = "com.sun.security.jgss.krb5.initiate"
|
||
|
- { "#comment" = "Test of omitted linebreaks and naked boolean" }
|
||
|
+ { }
|
||
|
+ { "#comment" = "Test of naked boolean" }
|
||
|
{ "loginModuleClass" = "com.sun.security.auth.module.Krb5LoginModule"
|
||
|
{ "flag" = "required"
|
||
|
- { "useTicketCache" = "true" }
|
||
|
+ { "useTicketCache" = "true;" }
|
||
|
}
|
||
|
}
|
||
|
- { }
|
||
|
}
|
||
|
--
|
||
|
2.13.6
|