小编Chi*_*may的帖子

Spring Security中角色与GrantedAuthority的区别

有概念和实现Spring Security的,如GrantedAuthority界面得到一个权威授权/控制的访问.

我希望这是允许的操作,例如createSubUsersdeleteAccounts,我允许管理员(带角色ROLE_ADMIN).

我在网上看到的教程/演示让我感到困惑.我尝试连接我读到的内容,但我认为我们可以互换地对待这两者.

我看到hasRole消费了一个GrantedAuthority字符串?我肯定在理解上做错了.这些概念在Spring Security中是什么?

如何存储用户的角色,与该角色的权限分开?

我也在查看在org.springframework.security.core.userdetails.UserDetails身份验证提供程序引用的DAO中使用的接口,它使用了一个User(注意最后的GrantedAuthority):

public User(String username, 
            String password, 
            boolean enabled, 
            boolean accountNonExpired,
            boolean credentialsNonExpired, 
            boolean accountNonLocked, 
            Collection<? extends GrantedAuthority> authorities)
Run Code Online (Sandbox Code Playgroud)

或者还有其他方法可以区分其他两个吗?或者它不受支持,我们必须自己制作?

java spring spring-mvc spring-security

209
推荐指数
4
解决办法
10万
查看次数

用于选择特定列的Spring Data JPA规范

我们可以通过在Repository Interface中编写自定义@Query方法来选择特定列.但是,我不想为不同的属性编写这么多方法.

我试过这个,但它一直返回整个对象.

public class MySpecifications {

    public static Specification<MyInfo> propertiesWithId(final String[] properties, final Object id, final String idProperty)
    {

        return new Specification<MyInfo>() {

            @Override
            public Predicate toPredicate(Root<MyInfo> root,
                    CriteriaQuery<?> query, CriteriaBuilder cb) {

                query = cb.createTupleQuery(); //tried cb.createQuery(MyInfo.class); as well

                List<Selection<? extends Object>> selectionList = new ArrayList<Selection<? extends Object>>();

                for (String property : properties) {

                    Selection<? extends Object> selection = root.get(property);

                    selectionList.add(selection);
                }

                return query.multiselect(selectionList).where(cb.equal(root.get(idProperty), id)).getRestriction();
            }

        };
    }
}
Run Code Online (Sandbox Code Playgroud)

用作:

MyInfo findOne(Specification(properties,idValue, idProperty));
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?哪里出错了?

java spring jpa spring-data spring-data-jpa

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

理解PHP中的会话

我的问题:

  1. session.gc_maxlifetimein php.ini:是session.gc_maxlifetime从session_start()开始还是从服务器的最新请求开始?(假设我有一些没有调用session_start()的请求.)

  2. 使用该$_SESSION对象的最佳做法是什么,以免浪费宝贵的RAM(及时自动清除空闲会话)?或者这是在提到的时间内自动发生的事情session.gc_maxlifetime

  3. 如何正确检查会话是否已过期(与从未创建的会话相对)?或两者都一样?isset($_SESSION['any_variable']) === FALSE
  4. 假设我无法控制php.ini,我该如何增加session.gc_maxlifetime
  5. session_start():如果会话已"超时",则调用session_start将始终启动与先前变量不可用的会话(全新会话).那是对的吗?

php session

6
推荐指数
0
解决办法
218
查看次数

Spring Data中的查询创建 - 动态where子句

Spring数据中有没有办法动态形成where子句?

我想要做的是有一个方法(类似于findBy/get方法)运行WHERE和AND使用提到的NOT NULL属性.

例如,

Consider the object Person [firstName, lastName, age, gender]
Run Code Online (Sandbox Code Playgroud)

我们的方法看起来像这样

findBy_IfNotNullFirstName_AndIfNotNullLastName_AndIfNotNullAge_AndIfNotNullGender(String firstName, String lastName, Integer age, String gender)
Run Code Online (Sandbox Code Playgroud)

谢谢.

java sql jpa spring-data-jpa

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

react-scripts start exiting in docker foreground cmd

How can I debug react-scripts start?

This was working fine, I have no idea what changed (I did not change anything)

It appears react-scripts start isn't able to stay up as the foreground process.

My Dockerfile:

FROM centos:7

EXPOSE 3000/tcp

RUN yum update -y && yum install -y unzip wget nano epel-release yum-utils http://rpms.remirepo.net/enterprise/remi-release-7.rpm wget nano yum-utils http://rpms.remirepo.net/enterprise/remi-release-7.rpm

RUN curl -sL https://rpm.nodesource.com/setup_13.x | bash -
RUN yum install -y nodejs

RUN mkdir /data
COPY ./src /data

COPY ./docker-entrypoint.sh ./docker-entrypoint.sh
ENTRYPOINT …
Run Code Online (Sandbox Code Playgroud)

docker reactjs

5
推荐指数
2
解决办法
3577
查看次数

Spring Data JPA何时实际上在数据库上调用INSERT?

使用JPARepository/Hibernate保存对象时,它首先检查数据库中是否存在(使用主键),然后检查插入.所以我们看到2个日志:SELECT&INSERT.

这就是我想通过弹簧数据做的事情:( X和XY是2个不同的对象)

Call Save on XRepository for Object X1

Call Save on XYRepository for Object X1Y1
Call Save on XYRepository for Object X1Y2
Call Save on XYRepository for Object X1Y3

Call Save on XRepository for Object X2

Call Save on XYRepository for Object X2Y1
Call Save on XYRepository for Object X2Y2
Call Save on XYRepository for Object X2Y3
Run Code Online (Sandbox Code Playgroud)

这是我在日志中的观察结果:

SELECT X1
INSERT X1
SELECT X1Y1
SELECT X1Y2
SELECT X1Y3
INSERT X1Y1
INSERT X1Y2
INSERT X1Y3
SELECT X2
INSERT X2 …
Run Code Online (Sandbox Code Playgroud)

java spring jpa spring-data spring-data-jpa

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

服务容器的生命周期是多少?

我正在尝试理解Symfony2框架.

来自Java/Spring背景,我意识到Symfony2中的Scope与Spring中的Scope不同.此外,使用Symfony3,不推荐使用Scope,但我们可以指定服务是否共享.

这是什么意思?

服务容器是否会保留服务对象直到其生命周期?这是否意味着我可以使用成员变量来跨请求保存有状态信息?(我不知道,如果这是真的可能的,因为显然这并没有发生).

所以它可能不会跨越请求.服务容器的生命周期是否等于请求?因为我注意到我有两个消费者使用的依赖关系,如果我设置shared: false,每个消费者获得依赖关系的不同"状态".但他们基本上是在同一个请求.

指定shared: false真正意味着什么?或者是什么shared: true意思?

php symfony

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

Maven- POM.xml中依赖项排序的重要性

pom.xml中依赖项的意义是什么?

我按以下顺序拥有依赖项:

  1. CGLIB
  2. Apache Commons
  3. 春季数据
  4. 过冬
  5. MySQL连接器
  6. 弹簧

如果我在Spring上随处插入Spring Security依赖项,我会收到错误.例如,如果我在最顶层插入两个依赖项,我会得到此异常(运行前也是编译器错误):

java.lang.NoClassDefFoundError:org/springframework/core/env/EnvironmentCapable

java spring pom.xml maven

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

Spring数据中的findAll可迭代和可分页

我们可以List<MyInfo> findAll(List<Integer> ids)在春季做一个数据。我如何将其与分页结合?

在以下方面:

findAll(ids, pageRequest);
Run Code Online (Sandbox Code Playgroud)

我尝试了一些创建规范和使用规范的方法,但是我做错了什么:

public class MySpecs {

    public static Specification<MyInfo> idsIn(final List<Integer> ids)
    {

        return new Specification<MyInfo>() {

            @Override
            public Predicate toPredicate(Root<MyInfo> root,
                    CriteriaQuery<?> query, CriteriaBuilder cb) {
                return root.get("id").in(ids);


            }

        };
    }
}


myRepo.findAll(MySpecs.isIn(ids),pageRequest)
Run Code Online (Sandbox Code Playgroud)

谢谢

spring spring-data spring-data-jpa

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

如何使用百里香包含外部javascript文件?

我正在使用Spring Boot / MVC并学习Thymeleaf。

假设我的脚本位于另一台服务器上。

https://staticserver.com/main.js

我已经在模型中添加了“ //staticserver.com”部分jsLocation

我想做以下事情:

<script src="${jsLocation}/main.js"></script>

这将使

<script src="//staticserver.com/main.js"></script>

spring-mvc thymeleaf

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