webservice统一认证

service

package cn.edu.hbcf.privilege.ws;

import javax.jws.WebParam;
import javax.jws.WebService;

@WebService
public interface CxfSecuityService {
    
    
    String registerUser(@WebParam(name="userName")String userName,@WebParam(name="password") String password);  

}

serviceImpl

package cn.edu.hbcf.privilege.ws.impl;


import java.util.List;

import javax.annotation.Resource;
import javax.jws.WebService;
import javax.servlet.http.HttpSession;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;

import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.edu.hbcf.common.vo.Criteria;
import cn.edu.hbcf.framework.dao.FrameworkMapper;
import cn.edu.hbcf.framework.pojo.APIKeyWebservice;
import cn.edu.hbcf.privilege.dao.BaseAPIKeysMapper;
import cn.edu.hbcf.privilege.pojo.BaseAPIKeys;
import cn.edu.hbcf.privilege.ws.CxfSecuityService;

@Service
@WebService(serviceName = "cxfSecuityService", portName = "cxfSecuityServicePort", endpointInterface = "cn.edu.hbcf.privilege.ws.CxfSecuityService")
public class CxfSecuityServiceImpl implements CxfSecuityService{

    
      @Resource    
      private WebServiceContext wsContext;     
      private MessageContext mc;     
      private HttpSession session;     
      
      @Autowired
        private BaseAPIKeysMapper keyMapper;
        @Autowired
        private FrameworkMapper frameWorkMapper;
        

    @Override
    public String registerUser(String userName, String password) {
        Criteria criteria = new Criteria();
        criteria.put("keyName", userName);
        List<BaseAPIKeys> keysList = keyMapper.selectByExample(criteria);
        if (!keysList.isEmpty()) {
            BaseAPIKeys userKey = keysList.get(0);
            password = DigestUtils.md5Hex(password);
            if (password.equals(userKey.getKeyPassword())) {
                 mc = wsContext.getMessageContext();     
                
                session = ((javax.servlet.http.HttpServletRequest) mc
                        .get(MessageContext.SERVLET_REQUEST)).getSession();

                ((javax.servlet.ServletContext) mc
                        .get(MessageContext.SERVLET_CONTEXT)) .setAttribute(
                        "session", session);
                session.setAttribute("msg", "ok");
                criteria.clear();
                criteria.put("key_id", userKey.getKeyId());
                List<APIKeyWebservice> list = frameWorkMapper.queryListByAPIKeyId(criteria);
                session.setAttribute("perm", list);
                return "认证成功!";
            }
        }
        return "认证失败!";
    }


}

 

<sql id="Example_Where_Clause">
        <trim prefix="where" prefixOverrides="and|or">
            <if test="condition.keyNameLike != null">
                <![CDATA[ and KEY_NAME LIKE '%'||#{condition.keyNameLike}||'%' ]]>
            </if>
            <if test="condition.keyName != null">
                and KEY_NAME = #{condition.keyName}
            </if>
            <if test="condition.keyDesc != null">
                and KEY_DESC = #{condition.keyDesc}
            </if>
        </trim>
    </sql>
    <sql id="Base_Column_List">KEY_ID,KEY_NAME,KEY_PASSWORD,KEY_IP,KEY_DESC</sql>
    <select id="selectByExample" resultMap="BaseResultMap"
        parameterType="Criteria">
        <include refid="common.Oracle_Pagination_Head" />
        select
        <if test="distinct">distinct</if>
        <include refid="Base_Column_List" />
        from BASE_APIKEYS
        <if test="_parameter != null">
            <include refid="Example_Where_Clause" />
        </if>
        <if test="orderByClause != null">order by ${orderByClause}</if>
        <include refid="common.Oracle_Pagination_Tail" />
    </select>

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值