Como posso instalar o Railo e o Apache no Ubuntu e fazer com que ele passe um nome de usuário básico de autenticação para o Railo?

0

Estou tentando migrar do Adobe ColdFusion para o Railo. O aplicativo que estou tentando migrar depende de fazer com que o servidor da Web verifique a autenticação básica, mas precisa saber o nome de usuário do usuário autenticado usando a variável #REMOTE_USER# .

Eu tentei fazer um dump do escopo cgi e parece que a variável não está sendo configurada. Eu estive fazendo isso por cerca de uma semana nova e estou preso.

    
por Azendale 11.10.2014 / 09:42

1 resposta

0

Então, finalmente descobri. Como se disse, demorei pelo menos uma semana para conseguir isso. Então, estou compartilhando minhas anotações sobre como configurar uma máquina nova para isso, para que ninguém mais precise gastar tanto tempo quanto eu imaginei isso. A principal coisa parece ser que você deseja fazer proxy para railo usando o protocolo AJP em vez de HTTP e você quer dizer ao tomcat que ele não precisa fazer autenticação (o que permitirá passar a variável intocada).

Vamos começar:

apt-get install apache2 mysql-server apache2-utils
a2enmod proxy_ajp
service apache2 restart

.

Instalar o Railo:

Faça o download da versão de 64 bits do instalador padrão listada na página, no link .

Torne-o executável:

chmod +x <file_you_just_downloaded>

Execute:

./<file_you_just_downloaded>

Escolha todos os padrões.

.

Ok, agora edite os arquivos de configuração assim:

=== modified file '/etc/apache2/apache2.conf'
--- /etc/apache2/apache2.conf 2014-10-10 00:22:11 +0000
+++ /etc/apache2/apache2.conf 2014-10-10 00:27:48 +0000
@@ -223,18 +223,24 @@
<IfModule mod_proxy.c>
<Proxy *>
Allow from 127.0.0.1
+
+ AuthType Basic
+ AuthName "Employee Login"
+ AuthBasicProvider file
+ AuthUserFile /etc/apache2/.htpasswd
+ Require valid-user
</Proxy>
ProxyPreserveHost On
- ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ http://127.0.0.1:8888/$1$2
- ProxyPassMatch ^/(.+\.cfchart)(/.*)?$ http://127.0.0.1:8888/$1$2
- ProxyPassMatch ^/(.+\.cfml)(/.*)?$ http://127.0.0.1:8888/$1$2
+ ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ ajp://127.0.0.1:8009/$1$2
+ ProxyPassMatch ^/(.+\.cfchart)(/.*)?$ ajp://127.0.0.1:8009/$1$2
+ ProxyPassMatch ^/(.+\.cfml)(/.*)?$ ajp://127.0.0.1:8009/$1$2
# optional mappings
#ProxyPassMatch ^/flex2gateway/(.*)$ http://127.0.0.1:8888/flex2gateway/$1
#ProxyPassMatch ^/messagebroker/(.*)$ http://127.0.0.1:8888/messagebroker/$1
#ProxyPassMatch ^/flashservices/gateway(.*)$ http://127.0.0.1:8888/flashservices/gateway$1
#ProxyPassMatch ^/openamf/gateway/(.*)$ http://127.0.0.1:8888/openamf/gateway/$1
#ProxyPassMatch ^/rest/(.*)$ http://127.0.0.1:8888/rest/$1
- ProxyPassReverse / http://127.0.0.1:8888/
+ ProxyPassReverse / ajp://127.0.0.1:8009/
</IfModule>



=== modified file '/etc/apache2/sites-available/000-default.conf'
--- /etc/apache2/sites-available/000-default.conf 2014-10-10 00:12:20 +0000
+++ /etc/apache2/sites-available/000-default.conf 2014-10-10 00:31:59 +0000
@@ -26,6 +26,13 @@
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
+ <Directory /var/www/html>
+ AuthType Basic
+ AuthName "Employee Login"
+ AuthBasicProvider file
+ AuthUserFile /etc/apache2/.htpasswd
+ Require valid-user
+ </Directory>
</VirtualHost>

Usando o programa htpasswd, crie um arquivo .htpasswd em /etc/apache2 Se você quiser que alguns sites sejam autenticados e outros não, você pode colocar a seção proxy dentro da definição de hosts virtuais e ajustar conforme necessário por host virtual. / p>

Edite o /opt/railo/tomcat/config/server.xml

=== modified file '/opt/railo/tomcat/config/server.xml'
--- /opt/railo/tomcat/config/server.xml 2014-10-10 00:34:48 +0000
+++ /opt/railo/tomcat/config/server.xml 2014-10-10 00:36:33 +0000
@@ -89,7 +89,7 @@
-->

<!-- Define an AJP 1.3 Connector on port 8009 -->
- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
+ <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" tomcatAuthentication="false" />
+ <Connector port="8010" protocol="AJP/1.3" tomcatAuthentication="false" secure="true" scheme="https"/>

<!-- An Engine represents the entry point (within Catalina) that processes -->

Reinicie o Railo / Tomcat:

/opt/railo/railo_ctl restart

Agora, a Railo deve colocar o nome de usuário da autenticação básica em cgi.remote_user. Eu pensei que poderia ter que tentar colocar algo que copia isso para # REMOTE_USER # em localconfig / application.cfm. Mas isso já parece ser a mesma coisa. O segundo conector AJP na porta 8010 é para você fazer proxy de hosts virtuais habilitados para SSL no Apache. Portanto, se você tiver um host virtual habilitado para SSL, use o proxy para a porta 8010 em vez de 8009. Dessa forma, a Railo definirá variáveis que permitem que o ColdFusion em execução saiba que está usando SSL.

    
por Azendale 11.10.2014 / 09:42