让Dropwizard构建的REST API支持跨域访问【Access-Control-Allow】

基于Dropwizard框架构建的REST API 默认情况下会出现跨域访问限制,好在 Dropwizard 提供了Filter机制能够解除这个限制,具体操作如下:

在 Dropwizad应用的起始类中添加如下里面注释说明的那一段代码即可。

import io.dropwizard.Application;
import io.dropwizard.setup.Bootstrap;
import io.dropwizard.setup.Environment;
import io.dropwizard.views.ViewBundle;
import org.eclipse.jetty.servlets.CrossOriginFilter;
import org.hibernate.internal.FilterConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.DispatcherType;
import java.util.EnumSet;
/**
 * Author:      YeFei
 * Create Date: 2014-05-26
 * Version:     V0.1
 */
public class PushApplication  extends Application<PushConfiguration> {
    static final Logger myLogger = LoggerFactory.getLogger(PushApplication.class);
    public static void main(String[] args) throws Exception {
         new PushApplication().run(args);
    }
    
    @Override
    public void initialize(Bootstrap<PushConfiguration> bootstrap) {
        myLogger.info( "###### Start Initialize SpringConfig" );
        XmlRestWebApplicationContext context = new XmlRestWebApplicationContext(new String[]{"classpath:applicationContext.xml"}, false);
        bootstrap.addBundle(new SpringBundle<PushConfiguration>(context, true, true, true));
        bootstrap.addBundle(new ViewBundle());
        myLogger.info( "###### End Initialize SpringConfig" );
    }
    
    @Override
    public void run(PushConfiguration configuration,
                    Environment environment) throws ClassNotFoundException {
        // 增加解除跨域限制的Filter,CrossOriginFilter 是Jetty提供的一个跨域处理Filter。
        environment.servlets().addFilter("CrossOriginFilter", new CrossOriginFilter())
                .addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*");
    }
}

 

转载于:https://my.oschina.net/u/1991378/blog/295820

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值