// Path: src/main/java/org/catframework/agileworking/service/WebTokenService.java
// public interface WebTokenService {
// 
// 	/**
// 	 * 使用指定的主题生成 token
// 	 * 
// 	 * @param subject 指定的信息
// 	 * @return 生成的 token
// 	 */
// 	String generate(String subject);
// 
// 	/**
// 	 * 校验指定的主题的 token 是否福匹配
// 	 * 
// 	 * @param token 被校验的 token
// 	 * @return 当校验成功时返回 <code>true</code>
// 	 */
// 	boolean verify(String subject, String token);
// }


import java.security.Key;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.catframework.agileworking.service.WebTokenService;
import org.springframework.stereotype.Component;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.impl.crypto.MacProvider;
package org.catframework.agileworking.service.impl;




/**
 * 使用 JJWT 做为 WebToken 的实现，当前的实现每次服务启动都生成一个新的 key，且不支持集群环境下使用，后续考虑配置文件或者数据库的方式.
 *  
 * @author devzzm
 */
@Component
public class SimpleJJWTWebTokenServiceImpl implements WebTokenService {

	private static final Log logger = LogFactory.getLog(SimpleJJWTWebTokenServiceImpl.class);

	private Key key = MacProvider.generateKey();

	@Override
	public String generate(String subject) {
		return Jwts.builder().setSubject(subject).signWith(SignatureAlgorithm.HS512, key).compact();
	}

	@Override
	public boolean verify(String subject, String token) {
		try {
			return Jwts.parser().setSigningKey(key).parseClaimsJws(token).getBody().getSubject().equals(subject);
// Path: src/main/java/org/catframework/agileworking/service/WebTokenService.java
// public interface WebTokenService {
// 
// 	/**
// 	 * 使用指定的主题生成 token
// 	 * 
// 	 * @param subject 指定的信息
// 	 * @return 生成的 token
// 	 */
// 	String generate(String subject);
// 
// 	/**
// 	 * 校验指定的主题的 token 是否福匹配
// 	 * 
// 	 * @param token 被校验的 token
// 	 * @return 当校验成功时返回 <code>true</code>
// 	 */
// 	boolean verify(String subject, String token);
// }


// Path: src/main/java/org/catframework/agileworking/service/impl/SimpleJJWTWebTokenServiceImpl.java
import java.security.Key;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.catframework.agileworking.service.WebTokenService;
import org.springframework.stereotype.Component;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.impl.crypto.MacProvider;

package org.catframework.agileworking.service.impl;




/**
 * 使用 JJWT 做为 WebToken 的实现，当前的实现每次服务启动都生成一个新的 key，且不支持集群环境下使用，后续考虑配置文件或者数据库的方式.
 *  
 * @author devzzm
 */
@Component
public class SimpleJJWTWebTokenServiceImpl implements WebTokenService {

	private static final Log logger = LogFactory.getLog(SimpleJJWTWebTokenServiceImpl.class);

	private Key key = MacProvider.generateKey();

	@Override
	public String generate(String subject) {
		return Jwts.builder().setSubject(subject).signWith(SignatureAlgorithm.HS512, key).compact();
	}

	@Override
	public boolean verify(String subject, String token) {
		try {
			return Jwts.parser().setSigningKey(key).parseClaimsJws(token).getBody().getSubject().equals(subject);
		} catch (Exception e) {