如何在查询中填写账号密码获取SVN文件的HTTP直连

问题描述 投票:0回答:0
  1. 现在假设:

Url1表示http://sas2.witersen.com:9094/svn/rep1/2023-03-11_165815.jpg是一个普通的需要权限的SVN仓库HTTP访问地址。对应的用户权限为:用户user1 密码123456

Url2 表示 http://sas2.witersen.com:9094/svn_0328/rep1/2023-03-11_165815.jpg?u=user1&p=123456 是另一个 URL

现在我要实现如下效果:

  • 用户访问url1需要输入账号密码
  • 用户无需输入账号密码即可访问url2的内容,但url2主动携带u和p信息
  1. 这是我的apache配置文件:
RewriteEngine On
##ProxyRequests Off
RewriteCond %{QUERY_STRING} ^u=(.*?)&p=(.*)$
RewriteCond %{REQUEST_URI} ^/svn_0328
RewriteRule ^/svn_0328(.*) /svn$1 [QSA,E=REMOTE_USER:%1,E=AUTH_PW:%2,L,P]

<Location /svn>
  DAV svn
  SVNListParentPath on
  SVNParentPath /home/svnadmin/rep/
  AuthType Basic
  AuthName "SVN Repo"
  AuthUserFile /home/svnadmin/httpPasswd
  AuthzSVNAccessFile /home/svnadmin/authz
  Require valid-user
</Location>

<Location /svn_0328>
ProxyPass http://localhost/svn
ProxyPassReverse http://localhost/svn
Header set Destination "http://localhost%{REQUEST_URI}e" env=REQUEST_URI
</Location>
  1. 这是重写日志

[Wed Apr 26 13:59:38.431691 2023] [rewrite:trace2] [pid 31648] mod_rewrite.c(470): [client 61.54.163.93:47432] 61.54.163.93 - - [sas2.witersen.com/sid#5635f94d5ce0][rid#5635f94fab10/initial] init rewrite engine with requested uri /svn_0328/rep1/2023-03-11_165815.jpg
[Wed Apr 26 13:59:38.431719 2023] [rewrite:trace3] [pid 31648] mod_rewrite.c(470): [client 61.54.163.93:47432] 61.54.163.93 - - [sas2.witersen.com/sid#5635f94d5ce0][rid#5635f94fab10/initial] applying pattern '^/svn_0328(.*)' to uri '/svn_0328/rep1/2023-03-11_165815.jpg'
[Wed Apr 26 13:59:38.431757 2023] [rewrite:trace4] [pid 31648] mod_rewrite.c(470): [client 61.54.163.93:47432] 61.54.163.93 - - [sas2.witersen.com/sid#5635f94d5ce0][rid#5635f94fab10/initial] RewriteCond: input='u=user1&p=123456' pattern='^u=(.*?)&p=(.*)$' => matched
[Wed Apr 26 13:59:38.431761 2023] [rewrite:trace4] [pid 31648] mod_rewrite.c(470): [client 61.54.163.93:47432] 61.54.163.93 - - [sas2.witersen.com/sid#5635f94d5ce0][rid#5635f94fab10/initial] RewriteCond: input='/svn_0328/rep1/2023-03-11_165815.jpg' pattern='^/svn_0328' => matched[Wed Apr 26 13:59:38.431764 2023] [rewrite:trace2] [pid 31648] mod_rewrite.c(470): [client 61.54.163.93:47432] 61.54.163.93 - - [sas2.witersen.com/sid#5635f94d5ce0][rid#5635f94fab10/initial] rewrite '/svn_0328/rep1/2023-03-11_165815.jpg' -> '/svn/rep1/2023-03-11_165815.jpg'
[Wed Apr 26 13:59:38.431767 2023] [rewrite:trace5] [pid 31648] mod_rewrite.c(470): [client 61.54.163.93:47432] 61.54.163.93 - - [sas2.witersen.com/sid#5635f94d5ce0][rid#5635f94fab10/initial] setting env variable 'REMOTE_USER' to ''
[Wed Apr 26 13:59:38.431769 2023] [rewrite:trace5] [pid 31648] mod_rewrite.c(470): [client 61.54.163.93:47432] 61.54.163.93 - - [sas2.witersen.com/sid#5635f94d5ce0][rid#5635f94fab10/initial] setting env variable 'AUTH_PW' to ''
[Wed Apr 26 13:59:38.431773 2023] [rewrite:trace2] [pid 31648] mod_rewrite.c(470): [client 61.54.163.93:47432] 61.54.163.93 - - [sas2.witersen.com/sid#5635f94d5ce0][rid#5635f94fab10/initial] forcing proxy-throughput with http://sas2.witersen.com:9094/svn/rep1/2023-03-11_165815.jpg
[Wed Apr 26 13:59:38.431776 2023] [rewrite:trace1] [pid 31648] mod_rewrite.c(470): [client 61.54.163.93:47432] 61.54.163.93 - - [sas2.witersen.com/sid#5635f94d5ce0][rid#5635f94fab10/initial] go-ahead with proxy request proxy:http://sas2.witersen.com:9094/svn/rep1/2023-03-11_165815.jpg [OK]
[Wed Apr 26 13:59:38.441480 2023] [rewrite:trace2] [pid 31536] mod_rewrite.c(470): [client 119.91.232.213:60792] 119.91.232.213 - - [sas2.witersen.com/sid#5635f94d5ce0][rid#5635f9507b60/initial] init rewrite engine with requested uri /svn/rep1/2023-03-11_165815.jpg
[Wed Apr 26 13:59:38.441500 2023] [rewrite:trace3] [pid 31536] mod_rewrite.c(470): [client 119.91.232.213:60792] 119.91.232.213 - - [sas2.witersen.com/sid#5635f94d5ce0][rid#5635f9507b60/initial] applying pattern '^/svn_0328(.*)' to uri '/svn/rep1/2023-03-11_165815.jpg'
[Wed Apr 26 13:59:38.441503 2023] [rewrite:trace1] [pid 31536] mod_rewrite.c(470): [client 119.91.232.213:60792] 119.91.232.213 - - [sas2.witersen.com/sid#5635f94d5ce0][rid#5635f9507b60/initial] pass through /svn/rep1/2023-03-11_165815.jpg
  1. 那么问题来了,为什么我在访问url2后,并没有像我预期的那样直接获取文件内容,而是弹出了和访问url1时一样的输入账号密码框。请帮我定位问题

  2. 我的apache版本是:Apache/2.4.6 (CentOS)

其实我也做了很多尝试,包括直接把1%%2换成user1 123456,但是都无效

apache authentication svn url-rewriting
© www.soinside.com 2019 - 2024. All rights reserved.