Package xyz.cofe.trambda.tcp
Class SecurError
- java.lang.Object
-
- java.lang.Throwable
-
- java.lang.Error
-
- xyz.cofe.trambda.tcp.SecurError
-
- All Implemented Interfaces:
Serializable
public class SecurError extends Error
Ошибка при проверки кода на безопасность.Данная ощибка возникает при проверке сервером на безопасность клиентского выполнения кода. Если сервер обнаруживает не безопасный код, то он не допускает его выполнение и возвращает эту ошибку клиенту. На стороне клиента будет сгенерировано исключение с этой ошибокой.
Настройка безопасности сервера
import xyz.cofe.trambda.sec.SecurAccess; import xyz.cofe.trambda.sec.SecurityFilters; ... server = new TcpServer<IEnv>( ssocket, session -> new LinuxEnv(), // Задаем ряд фильтров которые проверяют на безопасный код // Фильтры проверяют байт-код на наличие определенных инструкций: // Вызов метода или чтение/изменение поля SecurityFilters.create(s -> { // Фильтры деляться на две группы: //allow() - разрешающие// иdeny() - запрещающие// Каждая группа может указана несколько раз // Фильтры применяются в порядке их указания // Применяется первый совпавший фильтр s.allow( a -> { // Здесь задаются разрешающие вызовы // Проверяет вызов методов публичного сервиса a.invoke("demo api", c->c.getOwner() .matches("xyz\\.cofe\\.trambda\\.tcp\\.demo\\.([\\w\\d]+)")); // Так же разрешено вызывать методы Java Collection a.invoke("java collections api", c->c.getOwner().matches( "java\\.util\\.(List)|java\\.util\\.stream\\.([\\w\\d]+)")); // Это разрешение на вызов методов класса String a.invoke("java lang api", c->c.getOwner().matches("java\\.lang\\.(String)")); // Это разрешение на вызов стандартных BootStrap методов, // которые генериурует javaс a.invoke("java compiler", c->c.getOwner().matches("java\\.lang\\.invoke\\.(LambdaMetafactory|StringConcatFactory)")); }); // Все остальные вызовы запрещены s.deny().any("by default"); }) );- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Modifier Constructor Description SecurError(String message)КонструкторSecurError(String message, Throwable cause)КонструкторprotectedSecurError(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace)SecurError(Throwable cause)КонструкторSecurError(List<xyz.cofe.trambda.sec.SecurMessage<String,xyz.cofe.fn.Tuple2<xyz.cofe.trambda.LambdaDump,xyz.cofe.trambda.LambdaNode>>> secMessages)Конструктор
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<xyz.cofe.trambda.sec.SecurMessage<String,xyz.cofe.fn.Tuple2<xyz.cofe.trambda.LambdaDump,xyz.cofe.trambda.LambdaNode>>>getSecurMessages()Возвращает список сообщений о нарушении безопасности согласно фильтрам байт кода-
Methods inherited from class java.lang.Throwable
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
-
-
-
-
Constructor Detail
-
SecurError
public SecurError(String message)
Конструктор- Parameters:
message- Сообщение о ошибке
-
SecurError
public SecurError(String message, Throwable cause)
Конструктор- Parameters:
message- сообщение о ошибкеcause- Причина ошибки
-
SecurError
public SecurError(Throwable cause)
Конструктор- Parameters:
cause- Причина ошибки
-
SecurError
protected SecurError(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace)
-
-
Method Detail
-
getSecurMessages
public List<xyz.cofe.trambda.sec.SecurMessage<String,xyz.cofe.fn.Tuple2<xyz.cofe.trambda.LambdaDump,xyz.cofe.trambda.LambdaNode>>> getSecurMessages()
Возвращает список сообщений о нарушении безопасности согласно фильтрам байт кода- Returns:
- список сообщений о нарушении безопасности
-
-