10.02.2013 Views

IBM Tivoli Access Manager for e-business: WebSEAL Administration ...

IBM Tivoli Access Manager for e-business: WebSEAL Administration ...

IBM Tivoli Access Manager for e-business: WebSEAL Administration ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Handling<br />

invalid<br />

character<br />

encoding<br />

in<br />

URL<br />

query<br />

strings<br />

Problem:<br />

It<br />

is<br />

possible<br />

<strong>for</strong><br />

the<br />

query<br />

string<br />

of<br />

a<br />

URL<br />

to<br />

contain<br />

character<br />

encoding<br />

that<br />

is<br />

unacceptable<br />

to<br />

<strong>WebSEAL</strong>,<br />

and<br />

there<strong>for</strong>e<br />

rejected<br />

by<br />

<strong>WebSEAL</strong>.<br />

For<br />

example,<br />

a<br />

query<br />

string<br />

containing<br />

binary<br />

encoding<br />

is<br />

rejected<br />

by<br />

<strong>WebSEAL</strong>.<br />

The<br />

problem<br />

of<br />

invalid<br />

character<br />

encoding<br />

is<br />

caused<br />

by<br />

the<br />

specific<br />

requirements<br />

of<br />

the<br />

back-end<br />

server<br />

application.<br />

In<br />

a<br />

typical<br />

scenario,<br />

the<br />

client<br />

makes<br />

a<br />

request<br />

to<br />

this<br />

back-end<br />

application.<br />

The<br />

request<br />

includes<br />

a<br />

query<br />

string,<br />

required<br />

by<br />

the<br />

back-end<br />

application,<br />

but<br />

containing<br />

character<br />

encoding<br />

unknown<br />

to<br />

<strong>WebSEAL</strong>.<br />

<strong>WebSEAL</strong><br />

returns<br />

a<br />

″Bad<br />

Request″<br />

(400)<br />

error.<br />

The<br />

error<br />

log<br />

contains<br />

a<br />

message<br />

such<br />

as:<br />

″Illegal<br />

character<br />

in<br />

URL.″<br />

Solution:<br />

The<br />

solution<br />

to<br />

the<br />

problem<br />

of<br />

invalid<br />

character<br />

encoding<br />

is<br />

to<br />

configure<br />

<strong>WebSEAL</strong><br />

to<br />

completely<br />

ignore<br />

the<br />

query<br />

string.<br />

The<br />

query<br />

string<br />

component<br />

of<br />

the<br />

URL<br />

can<br />

then<br />

be<br />

passed<br />

unchanged<br />

to<br />

the<br />

back-end<br />

application.<br />

However,<br />

if<br />

<strong>WebSEAL</strong><br />

is<br />

configured<br />

to<br />

ignore<br />

the<br />

query<br />

string<br />

component,<br />

then<br />

dynamic<br />

URL<br />

mapping<br />

<strong>for</strong><br />

authorization<br />

checking<br />

must<br />

be<br />

disabled.<br />

If<br />

this<br />

compromise<br />

is<br />

acceptable<br />

<strong>for</strong><br />

your<br />

<strong>WebSEAL</strong><br />

environment,<br />

per<strong>for</strong>m<br />

the<br />

following<br />

two<br />

changes<br />

to<br />

the<br />

<strong>WebSEAL</strong><br />

configuration<br />

file:<br />

1.<br />

Disable<br />

the<br />

dynurl-map<br />

parameter<br />

with<br />

a<br />

comment<br />

character:<br />

[server]<br />

#dynurl-map<br />

=<br />

bin/dynurl.conf<br />

2.<br />

Manually<br />

add<br />

the<br />

decode-query<br />

parameter<br />

and<br />

set<br />

it<br />

equal<br />

to<br />

″no″:<br />

[server]<br />

decode-query<br />

=<br />

no<br />

The<br />

default<br />

behavior<br />

when<br />

decode-query<br />

is<br />

not<br />

defined<br />

is:<br />

decode-query<br />

=<br />

yes<br />

If<br />

you<br />

disable<br />

dynurl-map<br />

and<br />

fail<br />

to<br />

add<br />

decode-query,<br />

the<br />

<strong>WebSEAL</strong><br />

process<br />

does<br />

not<br />

start.<br />

Chapter<br />

2.<br />

<strong>WebSEAL</strong><br />

server<br />

configuration<br />

55

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!