External shell script return value for inner-tunnel
Trevor Jennings
Trevor at simple101.com
Tue Aug 27 12:35:00 CEST 2019
Hi Alan,
Thanks for pointing me in the right direction. This now works!
I had to basically assign "UserType" as an attribute in the dictionary and
reference this as reply:UserType in the inner tunnel.
Cheers,
- Trevor
On Sat, Aug 24, 2019 at 9:22 AM Alan DeKok <aland at deployingradius.com>
wrote:
> On Aug 23, 2019, at 8:27 PM, Trevor Jennings <tjennings at gmail.com> wrote:
> > My module looks like this:-
> > ---
> > exec bowdpersontype {
> > wait = yes
> > output_pairs = reply
> > shell_escape = yes
> > program = "/etc/freeradius/testldap.sh %{Stripped-User-Name}"
> > }
> > ---
> >
> > This test script will output:-
> >
> > echo "UserType=$bowdpersontype"
>
> What is the "UserType" attribute? Where is it defined?
>
> > And the inner tunnel:-
> >
> > ---
> > bowdpersontype
> >
> > if (UserType =~ /STAFF/) {
>
> See "man unlang". That is looking in the *request* list. The "exec"
> module configuration is putting the attribute into the *reply* list.
>
> > update reply {
> > .....
> > .....
> > }
> > }
> > ---
> >
> > The debug output does show me the result from the external script and
> 'ok'
> > message. How do I read the value to be used after the call?
>
> If you return a known attribute, *and* reference it in the right list,
> it will just work.
>
> Alan DeKok.
>
>
> -
> List info/subscribe/unsubscribe? See
> http://www.freeradius.org/list/users.html
More information about the Freeradius-Users
mailing list