小编Wpi*_*ott的帖子

Spring Cloud Config Server使用SSH密钥进行Git并在Docker中运行

在最终总结之前,我发现了许多问题和教程.想要记录它,以便其他人可以节省许多小时的挫折.

我试图在BitBucket上获得一个私有git存储库,以使用部署密钥与Spring Boot Config Server一起工作,并让它在Docker中运行.我遇到了很多问题.

  1. 如何使用application.yml文件实际配置.

我似乎无法弄清楚我应该把SSH信息放在哪里.所有教程似乎都适用于https.

  1. 如何为配置提供私钥.对于Dev,YML中内联的语法很痛苦.对于生产,您必须通过环境变量提供它,这是另一种语法习惯.

我一直收到私钥无效的错误.

  1. 如何让Docker容器信任主机密钥,而不是那个讨厌的"你相信这个人"的提示.

似乎有几种方法可以完成这项工作,但只有一种方法可以帮助我.

git ssh-keys docker spring-cloud-config spring-boot-configuration

8
推荐指数
2
解决办法
1万
查看次数

为FOS UserBundle扩展UserProvider

我正在使用Symfony2构建一个站点,它将是一个白标类型的站点,其中多个域映射到同一服务器.因此coolsite.customer1.com和aservice.customer2.com将映射到同一站点,但需要与最终用户显示不同.我已经解决了域名,并将唯一配置作为服务加载.

使用FOS UserBundle设置并运行自定义用户(其中​​存储了domain_id),注册,登录等工作正常,但domain1的用户也可以登录到domain2.这在FOS UserBundle中是预期的.我需要对捆绑包进行修改,以便它只对在分配给它们的域上的用户进行身份验证.

我创建了一个userProvider,它扩展了FOS中的原始userProvider,并重写了loadUserByUsername方法以检查域.见下文:

use FOS\UserBundle\Security\UserProvider as FOSProvider;
use Symfony\Component\DependencyInjection\ContainerInterface;
use FOS\UserBundle\Model\UserManagerInterface;
use Me\CoreBundle\Models\Core;

class UserProvider extends FOSProvider {

    /**
     *
     * @var ContainerInterface 
     */
    protected $container;


    public function __construct(UserManagerInterface $userManager, ContainerInterface $container) {
        parent::__construct($userManager);
        $this->container = $container;
    }

    /**
     * {@inheritDoc}
     */
    public function loadUserByUsername($username)
    {
        $core = $this->container->get('me_core');
        /* @var $core Core */

        $user = $this->findUserBy(array(
            'username'=>$username,
            'domain_id'=>$core->getDomainMap()->getId(),
        ));

        if (!$user) {
            throw new UsernameNotFoundException(sprintf('Username "%s" does not exist.', $username));
        }

        return $user;
    }

    public function findUserBy(array …
Run Code Online (Sandbox Code Playgroud)

symfony fosuserbundle symfony-2.1

7
推荐指数
1
解决办法
6527
查看次数