小编krs*_*888的帖子

避免使用keycloak默认登录页面并使用项目登录页面

我正在创建一个angular.js Web应用程序,并寻找如何集成keycloak到项目中.我已阅读并观看了许多教程,我发现其中大多数都有用户通过默认登录页面登录/注册keycloak,然后重定向到应用程序.

我已经设计了自己的登录和注册页面,我想使用它.我如何使用它们而不是keycloak默认值.有没有我可以调用的API,或者我的后端可能会这样做?我还看到有可用于keycloak的弹簧适配器,我可以使用它们吗?任何示例的任何链接都是好的.

我的第二个问题是在注册时我可以添加更多用户详细信息,例如地址,dob,性别keycloak吗?因为我的注册页面需要这些信息.

java angularjs keycloak keycloak-services

32
推荐指数
3
解决办法
3万
查看次数

keycloak CORS过滤器弹簧靴

我正在使用keycloak来确保我的休息服务.我正在参考这里给出的教程.我创造了休息和前端.现在当我在后端添加keycloak时,当我的前端进行api调用时,我收到CORS错误.

Spring启动时的Application.java文件看起来像

@SpringBootApplication
public class Application 
{
    public static void main( String[] args )
    {
        SpringApplication.run(Application.class, args);
    }

    @Bean
    public WebMvcConfigurer corsConfiguration() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/api/*")
                        .allowedMethods(HttpMethod.GET.toString(), HttpMethod.POST.toString(),
                                HttpMethod.PUT.toString(), HttpMethod.DELETE.toString(), HttpMethod.OPTIONS.toString())
                        .allowedOrigins("*");
            }
        };
    }
} 
Run Code Online (Sandbox Code Playgroud)

application.properties文件中的keycloak属性如下所示

keycloak.realm = demo
keycloak.auth-server-url = http://localhost:8080/auth
keycloak.ssl-required = external
keycloak.resource = tutorial-backend
keycloak.bearer-only = true
keycloak.credentials.secret = 123123-1231231-123123-1231
keycloak.cors = true
keycloak.securityConstraints[0].securityCollections[0].name = spring secured api
keycloak.securityConstraints[0].securityCollections[0].authRoles[0] = admin
keycloak.securityConstraints[0].securityCollections[0].authRoles[1] = user
keycloak.securityConstraints[0].securityCollections[0].patterns[0] …
Run Code Online (Sandbox Code Playgroud)

java rest spring cors keycloak

12
推荐指数
2
解决办法
4964
查看次数

如何从可调用接口返回未来对象(executorService.submit的内部工作)

我试图了解运行时如何创建未来对象executorService.submit(Callable);

例如,假设我创建了一个线程池,在其中传递可调用的实现

class FactorialCalculator implements Callable<Long> { 
  private int number; 
  public FactorialCalculator(int number) { 
    this.number = number; 
  } 
  @Override 
  public Long call() throws Exception { 
        return (number*number); 
  }
}
Run Code Online (Sandbox Code Playgroud)

我想返回 future 对象,这样我就可以从调用函数中获取返回值。我的自定义线程池如下所示

class MyThreadPool implements java.util.concurrent.Executor 
{
    private final java.util.concurrent.BlockingQueue<Callable> queue;

    public MyThreadPool(int numThreads) {
        queue = new java.util.concurrent.LinkedBlockingQueue<>();
        for (int i=0 ; i<numThreads ; i++) {
            new Thread(new Runnable(){
                @Override
                public void run() {
                    while(true) {
                        queue.take().call();
                    }
                }
            }).start();
        }
    }

    @Override
    public void submit(Callable command) …
Run Code Online (Sandbox Code Playgroud)

java multithreading executorservice java.util.concurrent threadpool

4
推荐指数
1
解决办法
1664
查看次数

spring-boot REST POST API 发送文件

我是 spring rest 的新手,并尝试创建一个 REST POST API,用户可以在其中将文件发送到服务器。

@RequestMapping(value = "/order", method = RequestMethod.POST)
public String create(@RequestParam("file") MultipartFile file) {        
        System.out.println("---------INSIDE ORDER----------");
        return "file succesfully received!";
}
Run Code Online (Sandbox Code Playgroud)

但是当我通过上传 order.txt 文件并选择表单数据(在邮递员中)调用此 API 时,我收到此错误

{
  "timestamp": 1474129488458,
  "status": 400,
  "error": "Bad Request",
  "exception": "org.springframework.web.multipart.support.MissingServletRequestPartException",
  "message": "Required request part 'file' is not present",
  "path": "/order"
}
Run Code Online (Sandbox Code Playgroud)

java rest spring multipartform-data spring-boot

3
推荐指数
1
解决办法
3609
查看次数