Regravar regra nginx, token

0

Eu tenho um aplicativo java que está por trás do passe do proxy nginx. Quando o URL é chamado, o aplicativo cria automaticamente um caminho para o conteúdo exibido.

Então, quando você chamar https://somedomain.com , receberá https://somedomain.com/todayisaniceday

Esta é a diretiva de passagem de proxy e a regra de reescrita no meu nginx:

    location /URI{
    proxy_pass      http://IP:PORT/URI;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $http_host;
}

location ~ ^/([a-zA-Z0-9=\?]+)$ {
    rewrite ^/(.*)$ / break;
}

Estou implementando um mecanismo de autenticação de token.

O que eu gostaria de alcançar é o seguinte:

quando você liga:

https://somedomain.com/something?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

O URL permanecerá e não será reescrito pelo aplicativo java. Então, basicamente, quando há essa string ?jwt= na URL, ela deve ficar com ela e tudo por trás dela.

Eu estava tentando algo assim:

rewrite ^/(.*)$ /?jwt=$1 break; , mas sem sucesso.

Alguma idéia?

Obrigado pela ajuda.

    
por DaWe4444 06.06.2017 / 16:02

1 resposta

0

Experimente as condicionais na sua seção de localização:

if ($request_uri !~ (.+(jwt=).+) ) {
    rewrite ^/(.*)$ / break;
}

Você deve alterar o regex para request_uri de acordo com suas necessidades

    
por 06.06.2017 / 16:30