我想在基于Spring的网络应用程序中显示来自摄像头的实时mjpeg流,而摄像头需要基本身份验证。
由于Chrome不再支持在网址中进行身份验证(请参阅https://code.google.com/p/chromium/issues/detail?id=123150#c3),并且我在全屏/主屏模式下使用主要在Android平板电脑上安装Chrome的网络应用,我遇到了麻烦。
带有嵌入式身份验证的图像标记,可以在Firefox中使用,如下所示:
<img src="http://username:password@the.camera.local/video.mjpeg" />
有没有办法让Spring拦截某些网址的GET请求并添加Authorization
标题?
修改1
另一方面,如果我可以设法加载带有jQuery
ajax请求的图片网址,我可以添加用户名和密码参数。
欢迎任何关于如何做到这一点的暗示。
修改2
事实上,我最初的问题是有缺陷的。浏览器直接对摄像机URL进行图像请求,因此Spring Security无法对其进行修改。
可能唯一的解决方案是通过Ajax加载图像。
答案 0 :(得分:0)
我认为使用弹簧安全性可以解决您的目的。
对于Ex: - 你可以在spring-security.xml文件中提到你想要实现它的url。
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.1.xsd">
<http>
<intercept-url pattern="/video/*" access="ROLE_USER" />
<!-- Basic authentication -->
<http-basic/>
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="test" password="test_pass" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
为spring security配置 web.xml ,并在 pom.xml 中添加依赖项。
现在,当您尝试访问资源/视频/时,对于每次成功的身份验证,都会添加授权标头。
答案 1 :(得分:0)
如何为某些请求添加基本身份验证?如果我使用spring security,则会为所有请求添加标头。