在javaweb中ssm框架添加rest接口的方法以及cas单点登录web.xml中添加白名单url的方法

restful接口
restful接口具有很多优势,比如可以通过一个接口的get/put/delete类似实现查询、新增、删除、修改的功能,笔者所做的项目是需要用到restful接口来提供给其他项目使用
第一步:在web.xml里面配置拦截白名单
首先,别的项目想要访问我们对外暴露的接口时候,我们必须将该类请求放行不拦截,别的项目才可以访问到我们的请求,我们使用的是cas单点登录的框架,至于单点登录相关的知识,网上有很多介绍,怎么集成,怎么写过滤器都有相关教程,读者可以自行百度,我们需要在web.xml中添加如下配置:

<filter>
		<filter-name>CAS Authentication Filter</filter-name>
		<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
		<init-param>
			<param-name>casServerLoginUrl</param-name>
		    <param-value>https://127.0.0.1:8443/sso/login</param-value>
		</init-param>
		<init-param>
         <description>URL白名单</description>
         <param-name>ignorePattern</param-name>
         <!--此处用于配置多个地址 -->
         <param-value>/res/|/arz/|/sso/</param-value>
      </init-param>
      <init-param>
         <description>忽略请求URL匹配模式(REGEX正则)</description>
         <param-name>ignoreUrlPatternType</param-name>
          <param-value>REGEX</param-value>
      </init-param>
	</filter>

接下来我们在controller层编写好一个控制器类,在其中编写相关实现方法即可:

package com.cn.zhangb.controller;

@RequestMapping(value = "/res")
@RestController
public class RestController<main> extends BaseController {

    static final Logger LOGGER = LoggerFactory.getLogger(RestController.class);

    @Autowired
    private TestService testService;
  /**
     * 根据用户账号获取系统菜单列表
     */
     //设置请求方式和编码
    @RequestMapping(value = "/getUserMenu", method = {RequestMethod.POST}, produces = "application/json;charset=utf-8")
	public String getUserMenu(HttpServletRequest request) {
		String requestStr = "";
		try {
			requestStr = this.getRequestPostData(request);
		} catch (IOException e) {
			e.printStackTrace();
			return JsonUtil.toErrorJson("接收参数异常!").toString();
		}
		JSONObject paramJson = JSONObject.fromObject(requestStr);
		List<Menu> menus = null;
		if (paramJson.getString("account") != null && paramJson.getString("yybh") != null) {
			menus = testService.getMenus(paramJson.getString("account"), paramJson.getString("yybh"));
			JSONObject resultObj = JsonUtil.toSuccessJson("获取菜单信息成功!", menus);
			return resultObj.toString();
		} else {
			return JsonUtil.toErrorJson("接收参数异常!").toString();
		}
	}

接下来我们可以用postman请求接口:
在这里插入图片描述
这样我们就可以很方便的实现不同项目直接的接口互相调用了

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值