Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Service
- public class ExampleServer {
- private static final Logger logger = LoggerFactory.getLogger(ExampleServer.class);
- private final OpcUaServer server;
- public ExampleServer() throws Exception{
- CryptoRestrictions.remove();
- KeyStoreLoader loader = new KeyStoreLoader().load();
- DefaultCertificateManager certificateManager = new DefaultCertificateManager(
- loader.getServerKeyPair(),
- loader.getServerCertificate()
- );
- File securityTempDir = new File(System.getProperty("java.io.tmpdir"), "security");
- LoggerFactory.getLogger(getClass())
- .info("security temp dir: {}", securityTempDir.getAbsolutePath());
- DefaultCertificateValidator certificateValidator = new DefaultCertificateValidator(securityTempDir);
- UsernameIdentityValidator identityValidator = new UsernameIdentityValidator(
- true,
- authChallenge -> {
- String username = authChallenge.getUsername();
- String password = authChallenge.getPassword();
- boolean userOk = "user".equals(username) && "password1".equals(password);
- boolean adminOk = "admin".equals(username) && "password2".equals(password);
- return userOk || adminOk;
- }
- );
- OpcUaServerConfig serverConfig = OpcUaServerConfig.builder()
- .setApplicationUri("urn:bbv:milo:examples:server")
- .setApplicationName(LocalizedText.english("Eclipse Milo OPC-UA Example Server"))
- .setBindAddresses(newArrayList("0.0.0.0"))
- .setBindPort(12686)
- .setBuildInfo(
- new BuildInfo(
- "urn:bbv:milo:example-server",
- "eclipse",
- "eclipse milo example server",
- OpcUaServer.SDK_VERSION,
- "", DateTime.now()))
- .setCertificateManager(certificateManager)
- .setCertificateValidator(certificateValidator)
- .setIdentityValidator(identityValidator)
- .setProductUri("urn:bbv:milo:example-server")
- .setServerName("dorst")
- .setSecurityPolicies(
- EnumSet.of(
- SecurityPolicy.None,
- SecurityPolicy.Basic128Rsa15,
- SecurityPolicy.Basic256,
- SecurityPolicy.Basic256Sha256))
- .setUserTokenPolicies(
- ImmutableList.of(
- USER_TOKEN_POLICY_ANONYMOUS,
- USER_TOKEN_POLICY_USERNAME))
- .build();
- server = new OpcUaServer(serverConfig);
- server.getNamespaceManager().registerAndAdd(
- ExampleNamespace.NAMESPACE_URI,
- idx -> new ExampleNamespace(server, idx));
- server.getServer().addRequestHandler(TestStackRequest.class, service -> {
- TestStackRequest request = service.getRequest();
- ResponseHeader header = service.createResponseHeader();
- service.setResponse(new TestStackResponse(header, request.getInput()));
- });
- server.getServer().addRequestHandler(TestStackExRequest.class, service -> {
- TestStackExRequest request = service.getRequest();
- ResponseHeader header = service.createResponseHeader();
- service.setResponse(new TestStackExResponse(header, request.getInput()));
- });
- }
- public OpcUaServer getServer() {
- return server;
- }
- public CompletableFuture<OpcUaServer> startup() {
- return server.startup();
- }
- public CompletableFuture<OpcUaServer> shutdown() {
- return server.shutdown();
- }
- @Scheduled(fixedRate = 5000)
- public void refreshServer() throws Exception {
- ServerNodeMap nodeMap = getServer().getNodeMap();
- DataRandomizer random = new DataRandomizer();
- ServerNode node = nodeMap.getNode(new NodeId(Unsigned.ushort(2), "Machine01/PowerCurve_1/Data")).get();
- AttributeContext attributeContext = new AttributeContext(getServer());
- DataValue dataValue = node.getAttribute(attributeContext, AttributeId.Value);
- Variant variant = new Variant(random.get());
- node.setAttribute(attributeContext, AttributeId.Value, new DataValue(variant));
- //nodeMap.replace(new NodeId(Unsigned.ushort(2), "Machine01/PowerCurve_1/Data"), data);
- //ServerNode replace =
- logger.info("ServerNode " + dataValue.toString());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement