我有一个Web应用程序,可以在浏览器和我的java applet中本地工作,它可以作为REST API访问它。
当我在流浪汉VM中部署相同的应用程序时,我可以通过浏览器访问它,在调试模式下运行并使用maven插件进行远程部署;但我无法使用我的REST客户端进行身份验证。
我收到以下回复:
请求需要用户身份验证。响应必须包括一个 包含挑战的WWW-Authenticate头字段(第14.46节) 适用于所请求的资源。客户可以重复 请求具有合适的授权标头字段(第14.8节)。如果 请求已包含授权凭据,然后是401 回复表明授权已被拒绝 证书。如果401响应包含与之相同的挑战 先前的响应,用户代理已经尝试过 验证至少一次,然后用户应该出现 响应中给出的实体,因为该实体可以包含 相关诊断信息。 HTTP访问身份验证是 在第11节中解释。
这是我的流浪文件:
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.network :forwarded_port, guest: 22, host: 2223, id: 'ssh'
config.vm.box = "weblogic-box"
config.vm.box_check_update = false
config.vbguest.auto_update = true
# workaround the vagrant 1.8.5 bug
config.ssh.insert_key = false
# change memory size
config.vm.provider "virtualbox" do |v|
v.memory = 4000
v.name = "vagrant-weblogic"
v.customize ["modifyvm", :id, "--cableconnected1", "on"]
v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
# Oracle port forwarding
config.vm.network "forwarded_port", guest: 1521, host: 1522
config.vm.network "forwarded_port", guest: 7001, host: 7001
config.vm.network "forwarded_port", guest: 7002, host: 7002
config.vm.network "forwarded_port", guest: 4000, host: 4000
#use $ ssh -X -p 2222 to run graphical applications
config.ssh.forward_x11 = true
# Provision everything on the first run
config.vm.provision "shell", path: "scripts/install.sh"
end
我的weblogic配置:
import os
readTemplate(os.environ["WL_HOME"] + '/common/templates/wls/wls.jar')
cd('Servers/AdminServer')
set('ListenAddress','')
set('ListenPort', 7001)
cd('/')
cd('Security/base_domain/User/weblogic')
cmo.setPassword('welcome1')
setOption('OverwriteDomain', 'true')
writeDomain(os.environ["MW_HOME"] + '/user_projects/domains/my-domain')
closeTemplate()
exit()
我缺少任何Vagrant / Weblogic配置吗?
答案 0 :(得分:0)
刚刚发现它,问题在于我在执行自定义身份验证时执行基本身份验证。只需按照此link中的说明操作,并在config.xml文件中添加以下配置。
</security-configuration>
.
.
.
<enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth-credentials>
</security-configuration>