在REST服务API调用上以编程方式通过Active Directory验证用户

时间:2014-08-07 18:50:38

标签: java spring-mvc spring-security active-directory

我有一个带有API的spring mvc web应用程序,看起来像这样

/api/createUser?name=Tom

同时,有一个由同一个Web应用程序支持的网站,该网站具有受限制的页面,只有在用户使用登录表单+ Active Directory进行授权后才能访问该页面。我已经设法建立AD并且运行良好,但我对API有点遗失。

我也想对API调用进行身份验证。也就是说,我想向每个API调用引入usernamepassword字段,以便当相关控制器收到此API调用时,它首先以编程方式验证用户并成功,然后继续执行请求。

所以问题是,如何在Spring中以编程方式从MVC控制器中彻底验证用户?是否有任何魔法豆可以注入并利用它的力量?

1 个答案:

答案 0 :(得分:0)

我认为你可以使用弹簧安全

<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.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.2.xsd">

<http auto-config="true">
    <intercept-url pattern="/api**" access="ROLE_USER" />
</http>

<authentication-manager>
  <authentication-provider>
    <user-service>
    <user name="username" password="password" authorities="ROLE_USER" />
    </user-service>
  </authentication-provider>
</authentication-manager>