On 17/04/12 12:48, DaveA wrote:
Hello,
I would like to default reject users who have a "/" or "\" in their username. Often users will misconfigure their machines and Windows will send the host\username, which will never be a valid login here.
Do you mean thing like: MY-PC\otherwisevalidusername ...or things like: host/name.domain.com i.e. the first 4 characters are actually "h", "o", "s", "t"?
Where is the best place to do this? I have tried to put this in the users file, but I may not have the correct regex:
DEFAULT User-Name =~ /[0-9a-zA-Z\/\\]+/, Auth-Type := Reject
Do you really want to reject any user whose User-Name contains a letter or number? Because that's what this regexp says.
My match cases are:
host\username host\\username host/username host //username
I do not want to sanitize these for the users.
Why? It makes your life hard, and your users lives hard, to reject names with a clearly valid intent. Still, your decision, feel free to use time as you see fit ;o) Anyway, your regex is indeed wrong. In the "users" file, you need: DEFAULT User-Name =~ "THEREGEX" THEREGEX must have double-escaped \ - first, escape the \ for the regex parser, next, escape the \ for the "users" file parser. i.e. if you want to match "a\b" you need a regexp: a\\b ...therefore you need to write: DEFAULT User-Name =~ "a\\\\b" "/" is not a special character in "users"-file regexps, so can just be left as-is. So: DEFAULT User-Name =~ "^.+\\\\\\\\", Auth-Type := Reject DEFAULT User-Name =~ "^.+\\\\", Auth-Type := Reject DEFAULT User-Name =~ "^.+//", Auth-Type := Reject DEFAULT User-Name =~ "^.+/", Auth-Type := Reject Note for the archives - if you want to do this in "unlang", the syntax is different. You do NOT need to double-escape the "\", but DO need to escape the "/". Figuring this out is left as an exercise for the reader. One final note - it would be REALLY handy if FR regexp engine let you choose an alternate delimiter like some programs e.g. if (User-Name =~ #theregex#) { ... } ...to avoid leaning toothpick syndrome. Maybe I will work up a patch.