小编CSc*_*ulz的帖子

使用一个登录表单验证多个symfony2防火墙

我有两个防火墙:

  1. api (用于API调用)
  2. main (其他一切)

我的客户端应用程序登录通过main防火墙进行 但是,它确实与api防火墙下的端点交互以获取数据.这里的问题是我不想强迫用户第二次登录以对第二个防火墙进行身份验证.

如何只使用一个登录表单对两个防火墙进行身份验证?

firewall symfony symfony-security

30
推荐指数
1
解决办法
7774
查看次数

将gitlab与sonarqube集成

我的服务器上安装了GitLab CE(至少v8.5).我想将它与sonarqube集成,以便合并请求在评论部分显示任何问题.有没有人成功整合这两个系统?

目前,我发现只有sonarqube插件如下,但我无法成功将其与GitLab集成.

https://gitlab.talanlabs.com/gabriel-allaigre/sonar-gitlab-plugin

我使用了一个docker容器for sonarqube(v5.5)并将插件复制到extensions目录中.在sonarqube的插件设置页面中配置了gitlab用户令牌和gitlab uri.

我正在使用GitLab CI进行持续集成,我为sonarqube做了以下构建工作(使用gradle)

sh gradlew sonarqube -Psonar.analysis.mode=preview -Psonar.issuesReport.console.enable=true \
  -Psonar.gitlab.commit_sha=$CI_BUILD_REF -Psonar.gitlab.ref_name=$CI_BUILD_REF_NAME \
  -Psonar.gitlab.project_id=$CI_PROJECT_ID
Run Code Online (Sandbox Code Playgroud)

但是,我不确定在此之后该怎么做.几个问题:

  1. 当合并请求不存在时会发生什么?在我的git工作流程中,用户将在完成分支工作后提交合并请求.那么,这个插件将如何知道要更新哪个合并请求?

  2. 现在我将sonarqube valiation任务设置为仅在master分支上运行.我认为这也需要改为用户分支,对吧?

我确实尝试过提交合并请求,但我没有看到任何评论被添加.我想我缺少一些配置或过程.真的很感激,如果你能帮我指出正确的方向.

integration plugins gitlab sonarqube gitlab-8

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

Jenkins:触发上游变更的多分支管道

我目前正在测试Jenkins 2.0的管道方法,看看它是否适用于我正在使用的构建环境.

首先是关于环境本身.它目前由多个SCM存储库组成.每个存储库包含多个分支,用于开发的不同阶段,每个分支都使用多个配置构建.并非所有配置都适用于每个存储库.

目前,每个存储库/分支都设置为不同配置的Matrix项目.每个项目都将它的构建结果公开为工件,并且这些工件在下游项目中使用.

不同的存储库相互依赖,因此在上游作业上的成功构建会触发一些特定的下游作业.目前一切正常,但设置新分支或调整构建过程所需的工作量很多,因为需要手动更改许多不同的项目.

现在我想尝试新的管道.我的想法是创建多分支管道项目,并Jenkinsfile在包含构建指令的存储库中放置一个.

主要问题是使构建相互触发,因为基本上是特定上游分支的构建需要触发下游分支.上游项目不知道下游分支需要触发的信息.每个下游项目从一些上游分支获取工件,理想的解决方案是,如果作为工件源的上游构建完成它的构建,将触发下游构建.

问题是只有下游项目真正知道他们需要什么工件.在大多数情况下,分支名称不太可能匹配,这使得从上游项目触发构建变得非常困难.

目前这是使用ReverseBuildTrigger.但是,一旦它接近管道,这件事就会停止工作.

我真的不知道如何让这个工作.有没有办法得到类似ReverseBuildTrigger工作内部管道脚本?

如果单个分支上游发生更改,也会触发所有分支的整个下游构建,这不是一个选项.这会产生太多相等的构建.

jenkins jenkins-workflow jenkinsfile jenkins-2

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

不能在Jenkinsfile中使用readMavenPom

我正在使用Jenkins文件与Jenkins 2.0一起使用.该readMavenPom方法无法识别.是否有一些我缺少的配置可以使它可用?

我的詹金斯文件:

node {
  stage 'Checkout'
  checkout scm
  env.PATH = "${tool 'maven-3'}/bin:${env.PATH}"
  stage 'Build'
  def pom = readMavenPom file: 'pom.xml'
  echo "${pom}"
  sh "mvn -DskipTests=true verify"
}
Run Code Online (Sandbox Code Playgroud)

运行时,我收到以下错误:

java.lang.NoSuchMethodError: No such DSL method 'readMavenPom' found among
[AWSEBDeployment, archive, bat, build, catchError, checkout, deleteDir, dir, echo,
emailext, error, fileExists, git, input, isUnix, load, mail, node, parallel,
properties, pwd, readFile, retry, sh, slackSend, sleep, stage, stash, step, svn,
timeout, tool, unarchive, unstash, waitUntil, withCredentials, withEnv, wrap,
writeFile, ws]
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-workflow jenkins-2

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

重新格式化Python文件以具有4个空格缩进

我正在编辑一个Python文件,它使用两个空格进行编程缩进 - 我更喜欢4个空格.在我的.vimrc中,我有以下与缩进相关的设置:

set tabstop=4                     "Indentation levels every four columns
set expandtab                     "Convert all tabs typed to spaces
set shiftwidth=4                  "Indent/outdent by four columns
set softtabstop=4
Run Code Online (Sandbox Code Playgroud)

如何让Vim将所有现有的2个空格缩进转换为4个空格缩进?

换一种说法:

if something:
  dothis()
Run Code Online (Sandbox Code Playgroud)

if something:
    dothis()
Run Code Online (Sandbox Code Playgroud)

当我尝试gg = G.

def check():
  for a in list:
    for  b in list2:
      check(a, b)
      while (len > MAX) :
        poll()

  while(len(thelist) > 0) :
    poll()  

  return results
Run Code Online (Sandbox Code Playgroud)

成为

def check():
    for a in list:
    for  b in list2:
    check(a, b)
    while (len > MAX) …
Run Code Online (Sandbox Code Playgroud)

python vim

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

用户角色何时刷新以及如何强制它?

首先,我没有使用FOSUserBundle,我不能,因为我正在移植一个遗留系统,它有自己的模型层(没有Doctrine/Mongo /无论在这里)和其他非常自定义的行为.

我正在尝试将我的遗留角色系统与Symfony连接,因此我可以在控制器和视图中使用本机symfony安全性.

我的第一次尝试加载并返回该用户的所有角色在getRoles()从方法Symfony\Component\Security\Core\User\UserInterface.起初,它看起来像是有效的.但在深入了解之后,我注意到这些角色只有在用户登录时才会刷新.这意味着如果我从用户授予或撤消角色,他将必须注销并重新登录才能使更改生效.但是,如果我从用户撤消安全角色,我希望立即应用该角色,这样我就无法接受这种行为.

我希望Symfony做的是在每个请求上重新加载用户的角色,以确保它们是最新的.我已经实现了一个自定义用户提供程序,并且refreshUser(UserInterface $user)每次请求都会调用其方法,但不会以某种方式刷新角色.

在我的UserProvider中加载/刷新用户的代码如下所示:

public function loadUserByUsername($username) {
    $user = UserModel::loadByUsername($username); // Loads a fresh user object including roles!
    if (!$user) {
        throw new UsernameNotFoundException("User not found");
    }
    return $user;
}
Run Code Online (Sandbox Code Playgroud)

(refreshUser看起来很相似)

有没有办法让Symfony在每个请求上刷新用户角色?

security roles symfony symfony-2.1 symfony-security

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

如何在Jenkins 2.0管道作业中执行命令,然后返回stdout

有没有更好的方法在Jenkins 2.0管道中运行shell任务,然后返回stdout命令.我能让它工作的唯一方法是将命令的输出传递给文件,然后将文件读入变量.

sh('git config --get remote.origin.url > GIT_URL')
def stdout = readFile('GIT_URL').trim()
Run Code Online (Sandbox Code Playgroud)

这似乎是一种非常糟糕的返回输出的方法.我希望我可以这样做:

def stdout = sh('git config --get remote.origin.url').stdout
Run Code Online (Sandbox Code Playgroud)

要么

def exitcode = sh('git config --get remote.origin.url').exitcode
Run Code Online (Sandbox Code Playgroud)

这可能吗?

groovy jenkins jenkins-workflow jenkins-pipeline jenkins-2

20
推荐指数
2
解决办法
4万
查看次数

JPA规范是否允许引用非主键列?

JPA规范是否允许对非主键列的简单引用?

我在我的Countries表上有一个简单的替代/自然键(UNIQUE,NOT NULL)列iso_code,我想在引用中使用它,但Eclipse的Dali显示验证错误,Hibernate抛出MappingException.

是否允许这种常见情况?

mapping hibernate jpa

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

Sonar抱怨记录和重新抛出异常

我在我的程序中有以下代码片段,并且在与Maven集成之后,我正在运行SonarQube 5以进行代码质量检查.

然而,Sonar抱怨我应该记录或重新抛出此异常.

我在这里错过了什么?我还没有记录异常吗?

 private boolean authenticate(User user) {
        boolean validUser = false;
        int validUserCount = 0;
        try {
            DataSource dataSource = (DataSource) getServletContext().getAttribute("dataSource");
            validUserCount = new MasterDao(dataSource).getValidUserCount(user);
        } catch (SQLException sqle) {
            LOG.error("Exception while validating user credentials for user with username: " + user.getUsername() + " and pwd:" + user.getPwd());
            LOG.error(sqle.getMessage());
        }
        if (validUserCount == 1) {
            validUser = true;
        }
        return validUser;
    }
Run Code Online (Sandbox Code Playgroud)

java exception-handling maven sonarqube sonarqube-5.0

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

错误:在Jenkins groovy脚本中并行显示"预期的命名参数"

我有一个Jenkins 2.0管道,带有这样的groovyscript:

node('nnh561.raijin') {
    stage 'checkout'
    build('trunk/checkout')

    stage 'build'
    parallel(
        { build('trunk/build/gfortran') },
        { build('trunk/build/ifort') }
    )

}
Run Code Online (Sandbox Code Playgroud)

每个单独的作业都构建良好,但是当我尝试运行管道时,它会在遇到并行步骤时吐出此错误:

java.lang.IllegalArgumentException: Expected named arguments but got [org.jenkinsci.plugins.workflow.cps.CpsClosure2@242d0d3a, org.jenkinsci.plugins.workflow.cps.CpsClosure2@9bf6d64]
    at org.jenkinsci.plugins.workflow.cps.DSL.parseArgs(DSL.java:275)
    at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:110)
    at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:113)
    at groovy.lang.GroovyObject$invokeMethod$0.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:151)
    at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:21)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:115)
    at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:123)
    at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:15)
    at WorkflowScript.run(WorkflowScript:6)
    at ___cps.transform___(Native Method)
    at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:55)
    at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:106)
    at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:79)
    at sun.reflect.GeneratedMethodAccessor294.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
    at com.cloudbees.groovy.cps.impl.ClosureBlock.eval(ClosureBlock.java:40)
    at com.cloudbees.groovy.cps.Next.step(Next.java:58)
    at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:154) …
Run Code Online (Sandbox Code Playgroud)

groovy jenkins jenkins-pipeline jenkins-2

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